還有最後一篇,補充知識,最後了!!!加油!!!
多態指的是一類事物有多種形態,(一個抽象類有多個子類,因而多態的概念依賴於繼承)。
# 定義父類
class Dan():
def do(self):
print('蛋')
# 繼承父類,重寫父類同名方法
class TxDan(Dan):
def do(self):
print('沸水中煮5分鐘')
class JianDan(Dan):
def do(self):
print('用油煎蛋至金黃')
# 傳入不同的對象,執行不同的代碼,即不同的do函數
class Person():
def do_dan(self,dan):
dan.do()
txd = TxDan()
jd = JianDan()
# 傳入不同的對象
xl = Person()
xl.do_dan(txd) # 沸水中煮5分鐘
xl.do_dan(jd) # 用油煎蛋至金黃
# 1. 定義類:定義類屬性
class Food():
weight = '10斤'
# 創建對象
pig = Food()
chicken = Food()
# 訪問類實現:類和對象
print(Food.weight) # 10斤
print(pig.weight) # 10斤
print(chicken.weight) # 10斤
類只能通過類對象修改,不能通過實例對象修改,如果通過實例對象修改屬性,表示的是創建一個實例屬性。
class Food():
weight = '10斤'
pig = Food()
chicken = Food()
# 修改類屬性
# 類.類屬性 = 值
Food.weight = '12斤'
print(Food.weight) # 12斤
print(pig.weight) # 12斤
print(chicken.weight) # 12斤
# 不能通過對象修改屬性,如果這樣操作,則是創建了一個實例屬性
# 對象.類屬性 = 值
pig.weight = '20斤'
print(Food.weight) # 12斤
print(pig.weight) # 20斤
print(chicken.weight) # 12斤
@classthod
來標識其為類方法,對於類方法,第一個參數必須是類對象,一邊以cls
作為第一個參數。class Food():
__weight = 10
@classmethod
def add_weight(cls,num):
cls.__weight += num
return cls.__weight
pig = Food()
result = Food.add_weight(5)
print(result) # 15
@staticmethod
來進行修飾,靜態方法既不需要傳遞類對象也不需要傳遞實例對象(形參沒有self/cls)class Food(object):
@staticmethod
def info_food():
print('這裡是肉肉')
pig = Food()
pig.info_food() # 這裡是肉肉
Food.info_food() # 這裡是肉肉
這就是全部的內容啦!!!恭喜大家畢業