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方法