python 類 繼承 python 類的繼承

2021-10-18 14:11:30 字數 1410 閱讀 4990

1 所用的類都可以被繼承

2 沒有繼承其他類的類必然有乙個父類(object)

3子類可以擁有父類的__init__裡的類容

派生子類除了父類的一些屬性,還會有自己的屬性和方法,這些就叫派生

如何使用**實現

class animal:

def __init__(self,name,attack,hp):

self.name=name

self.attack=attack

self.hp=hp

def defecate(self):

print('%s屁股一撅,要拉了' %self.name)

pass

class human(animal):

def __init__(self,name,attack,hp,intelli):

animal.__init__(self,name,attack,hp)

self.intelligence=intelli

def think(self):

print('who am i,where am i from?')

def defecate(self):

print('找了個廁所,脫下褲子')

animal.defecate(self)

pass

class dog(animal):

def __init__(self,name,attack,hp,kind):

animal.__init__(self,name,attack,hp)

self.kind=kind

def estrus(self):

print('把異性狗按倒在地')

pass

多繼承的順序   ,遵循廣度優先原理

就是會乙個乙個找過去,哪種順序能乙個不漏的找到,就用哪種順序

第乙個圖的順序 d,b,a,c,e,x

第二個圖 d,b,a,x,c,e,w

檢視乙個類的繼承順序**比如d : d.mro()

這是新式類的順序

那麼什麼是新式類

繼承object的類都是新式類,python3都是新式類

而python2裡面既有新式類也有經典類,經典類不同在於,繼承順序不同(深度優先),經典類也沒有mro和super

super()是什麼作用,怎麼用?

super() 函式是用於呼叫父類(超類)的乙個方法。

super 是用來解決多重繼承問題的,直接用類名呼叫父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查詢順序(mro)、重複呼叫(鑽石繼承)等種種問題。

mro 就是類的方法解析順序表, 其實也就是繼承父類方法時的順序表。

python繼承分類 python 類與繼承

類的繼承 什麼是繼承?繼承是一種新建類的方式,新建的類稱為子類,被繼承的類稱為父類。python中,父類 子類 派生類 只有在繼承的時候才會產生。繼承的特性 子類會繼承父類所有的屬性。為什麼要用繼承?使用繼承可以減少 的冗餘。物件的繼承 python中支援乙個類同時繼承多個父類 不推薦使用,當繼承多...

Python 類的繼承

有兩個模組 file1.py 和 file2.py file2中有個基類base def abc self return function abc and name self class base object def init self,name self.name name defrun sel...

Python 類的繼承

python中類的繼承,子類擁有繼承父類的方法和屬性,這一點上,與object c中是一樣的,整體上python語法和object c語法很想,但是swift與python這兩者是更像的語法上class parent 定義父類 parentattr 100 def init self print 呼...