新聞中心
方法重寫

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的龍川網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
基類(被繼承的類)的成員都會(huì)被派生類(繼承的新類)繼承,當(dāng)基類中的某個(gè)方法不完全適用于派生類時(shí),就需要在派生類中重寫父類的這個(gè)方法。
如下面的示例代碼,基類中定義的harvest()方法,無(wú)論派生類是什么水果都顯示"水果…",如果想要針對(duì)不同水果給出不同的提示,可以在派生類中重寫harvest()方法。例如,在創(chuàng)建派生類Orange()時(shí),重寫harvest()方法如下:
class Fruit:
color = '綠色'
def harvest(self, color):
print(f"水果是:{color}的!")
print("水果已經(jīng)收獲...")
print(f"水果原來(lái)是{Fruit.color}的!")
class Apple(Fruit):
color = "紅色"
def __init__(self):
print("我是蘋果")
class Orange(Fruit):
color = "橙色"
def __init__(self):
print("\n我是橘子")
def harvest(self, color): # 重寫harvest
print(f"橘子是:{color}的!")
print("橘子已經(jīng)收獲...")
print(f"橘子原來(lái)是{Fruit.color}的!")
apple = Apple() # 實(shí)例化Apple()類
apple.harvest(apple.color) # 在Apple()中調(diào)用harvest方法,并將Apple()的color變量傳入
orange = Orange()
orange.harvest(orange.color) # 在Orange()中調(diào)用harvest方法,并將Orange()的color變量傳入
執(zhí)行結(jié)果:
我是蘋果
水果是:紅色的!
水果已經(jīng)收獲...
水果原來(lái)是綠色的!
我是橘子
橘子是:橙色的!
橘子已經(jīng)收獲...
橘子原來(lái)是綠色的!注意:如本類中和父類同時(shí)存在這個(gè)方法名稱,將只會(huì)執(zhí)行本類中的這個(gè)方法,不會(huì)調(diào)用父類的同名方法(包括__init__())
網(wǎng)站欄目:創(chuàng)新互聯(lián)Python教程:python能重寫方法嗎
鏈接地址:http://m.fisionsoft.com.cn/article/djpgdih.html


咨詢
建站咨詢
