python面向?qū)ο骭詳談類的繼承與方法的重載
更新時間:2017年06月07日 08:11:51 投稿:jingxian
下面小編就為大家?guī)硪黄猵ython面向?qū)ο骭詳談類的繼承與方法的重載。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1. 類的繼承與方法的重載


上面就是先定義了一個類A,然后由定義了一個類B,B繼承了類A,這樣B就有了A的非私有屬性和方法。
class Washer:
company='ZBL'
def __init__(self,water=10,scour=2):
self._water=water #不想讓用戶直接訪問實(shí)例變量,可以標(biāo)志成私有
self.scour=scour
self.year=2000#這是生產(chǎn)日期
#屬性包裝,將water屬性包裝成方法,用戶使用water時實(shí)際是訪問的方法
@staticmethod #定義一個靜態(tài)方法
def spins_ml(spins):
return spins*0.4
print('company:',Washer.company)
#print('year:',self.year)#錯誤,靜態(tài)方法不能使用實(shí)例屬性
@classmethod
def get_washer(cls,water,scour):#cls相當(dāng)于實(shí)例方法中的self,調(diào)用是不用提供這個參數(shù)
return cls(water,cls.spins_ml(scour))#cls代表類名Washer,故不是硬編碼(改類名是不用改cls,若cls用類名代替也對,但若改類名這個地方也需要改動)
@property
def water1(self):#如果用戶使用 實(shí)例.water相當(dāng)于訪問這個方法,而不是真的訪問屬性
return self._water
@water1.setter
def water1(self,water):
if 0<water<=500:
self._water=water
else:
print('set Failure!')
@property
def total_year(self):
return 2017-self.year
def set_water(self,water):
self.water=water
def set_scour(self,scour):
self.scour=scour
def add_water(self):
print('Add water:',self._water)
def add_scour(self):
print('Add scour:',self.scour)
def start_wash(self):
self.add_water()
self.add_scour()
print('Start wash...')
class WasherDry(Washer):# 建立一個新類,繼承自Washer
def dry(self):#新類中可以定義只屬于子類的新方法
print('Dry cloths...')
def start_wash(self):#在子類中新定義與父類同名的方法就是方法的重載
self.add_scour()
self.add_water()
if __name__=='__main__':
## print(Washer.spins_ml (8))
## w=Washer()
## print(w.spins_ml(8))
## w=Washer(200,Washer.spins_ml(8))
## w.start_wash()
w=WasherDry()
w.start_wash()
print(w.scour,w.company)
w.dry()以上這篇python面向?qū)ο骭詳談類的繼承與方法的重載就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決python有時候import不了當(dāng)前的包問題
今天小編就為大家分享一篇解決python有時候import不了當(dāng)前的包問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python列表中多元素刪除(移除)的實(shí)現(xiàn)
本文主要介紹了Python列表中多元素刪除(移除)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
使用pandas或numpy處理數(shù)據(jù)中的空值(np.isnan()/pd.isnull())
這篇文章主要介紹了使用pandas或numpy處理數(shù)據(jù)中的空值(np.isnan()/pd.isnull()),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05
Python基于均值漂移算法和分水嶺算法實(shí)現(xiàn)圖像分割
圖像分割是將圖像分成若干具有獨(dú)特性質(zhì)的區(qū)域并提取感興趣目標(biāo)的技術(shù)和過程。這篇文章將詳細(xì)講解基于均值漂移算法和分水嶺算法的圖像分割,需要的可以參考一下2023-01-01
Python相關(guān)庫設(shè)置技巧保護(hù)你的C盤
這篇文章主要為大家介紹了Python相關(guān)庫設(shè)置,保護(hù)你的C盤技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

