1. 程式人生 > >python自動化學習9-類與物件、繼承

python自動化學習9-類與物件、繼承

class phone:

'這個是手機類,專門標記手機的屬性和功能'

初始化函式__init__() #這個做可以被物件方法呼叫

變成物件屬性,只能被物件呼叫,而不能被類呼叫

def __init__(self,brand_name,color,price,size,os):

   self.brand_name=brand_name

   self.color =color#物件屬性只能被物件來訪問

  phone.price =price#類屬性可以通過類和物件來訪問

   self.size = size

   self.os = os ##賦值給物件屬性,方便後期使用

 

 

def call(self,name='xiaocc'):##物件方法

      print('我可以給{}打電話'.format(name))

      return 666

 

@staticmethod ##靜態方法

def send_message(content):

#靜態方法裡面呼叫物件方法

##沒有傳self,就不能用self來訪問

      phone().call()#建立一個物件來呼叫物件方法

 

      print('我可以發:{}'.format(content))

 

@classmethod ##類方法

def watch_video(cls,*args):

#類方法裡面呼叫物件方法,靜態方法

    cls.send_message("hello world")

    cls().send_message("python13")#建立一個物件來呼叫物件方法

    phone().send_message('晚上好呀')#建立一個物件來呼叫物件方法

    print('看視訊{}'.format(args))

 

def music(self):

     print('聽音樂')

 

def take_photo(self): #物件方法裡面呼叫靜態方法、類方法的用法

    self.send_message('晚上好')

    self.watch_video('西遊記')

    self.call()

    print('我可以拍照')

def phone_info(self):

      #在函式裡想訪問類的屬性要用self 或者類

       print('手機的品牌是{},價格是{},顏色是{},作業系統是{}'

.format(self.brand_name,self.price,self.color,self.os))

 

##如果建立了初始化函式,建立物件的時候就必須要傳參,不然就報錯

 

物件擁有裡面所有屬性和方法的訪問權,訪問全部

 

Phone('華為','4500','black','android').call('spring')

 

 

類的繼承

class ApplePhone(Phone): #繼承父類

     def measure(self):

print("測身高")

ApplePhone("iphonex","black","9999","5.5","ios").call()

#父類裡面有初始化函式,子類在建立物件的時候要傳參,除非有預設值

 

#父類不可以呼叫子類的measure方法