Python 多重繼承

2021-09-25 20:08:44 字數 679 閱讀 5270

class a(object):

def test(self):

print('aaa')

class b(object):

def test(self):

print('b中的test()方法~~')

def test2(self):

print('bbb')

# 在python中是支援多重繼承的,也就是我們可以為乙個類同時指定多個父類

# 可以在類名的()後邊新增多個類,來實現多重繼承

# 多重繼承,會使子類同時擁有多個父類,並且會獲取到所有父類中的方法

# 在開發中沒有特殊的情況,應該盡量避免使用多重繼承,因為多重繼承會讓我們的**過於複雜

# 如果多個父類中有同名的方法,則會現在第乙個父類中尋找,然後找第二個,然後找第三個。。。

# 前邊父類的方法會覆蓋後邊父類的方法

class c(a,b):

pass

# 類名.__bases__ 這個屬性可以用來獲取當前類的所有父類

# print(c.__bases__) (,)

# print(b.__bases__) (,)

# print(c.__bases__) # (, )

c = c()

c.test()

python 多重繼承

python和c 一樣,支援多繼承。概念雖然容易,但是困難的工作是如果子類呼叫乙個自身沒有定義的屬性,它是按照何種順序去到父類尋找呢,尤其是眾多父類中有多個都包含該同名屬性。對經典類和新式類來說,屬性的查詢順序是不同的。現在我們分別看一下經典類和新式類兩種不同的表現 經典類 usr bin pyth...

Python多重繼承

class printa namea printa def set value self,a self.a a def set namea self,namea printa.namea namea def info self print printa s,s printa.namea,self.a...

python多重繼承

class d object pass class c d pass class b d pass class a b,c pass mro method resolution order 方法解析順序 為了解決多繼承問題 在inspect檔案中 採用aov圖,每次輸出乙個入度為零的點 相當於沒有人...