python中類的繼承規則

2021-09-28 20:59:53 字數 1186 閱讀 5410

python的類可以繼承多個類,如果繼承多個類,那麼其尋找方法的方式有:深度優先和廣度優先

基類或者父類繼承了object類,那麼該類就是新式類,否則便是經典類

當類是經典類時,多繼承情況下,會按照深度優先方法查詢

當類時新式類時,多繼承情況下,會按照廣度優先方法查詢

class a(object):

def test(self):

print('from a')

class b(a):

def test(self):

print('from b')

class c(a):

def test(self):

print('from c')

class d(b):

def test(self):

print('from d')

class e(c):

def test(self):

print('from e')

class f(d,e):

# def test(self):

# print('from f')

pass

f1=f()

f1.test()

print(f.__mro__) #只有新式才有這個屬性可以檢視線性列表,經典類沒有這個屬性

類的繼承關係:

執行結果:

新式類繼承順序:f->d->b->e->c->a

經典類繼承順序:f->d->b->a->e->c

python3中統一都是新式類 pyhon2中才分新式類與經典類 所有的父類的mro列表遵循如下原則: 子類會先於父類被檢查;多個父類會根據它們在列表中的順序被檢查;如果對下乙個類存在兩個合法的選擇,則選擇第乙個類。

類的繼承規則

class su born city jiangsu wearing thick def diet self print 我們愛吃甜。class yue settle city guangdong wearing thin def diet self print 我們吃得清淡。class yuesu...

python 繼承的規則

本文講述python繼承規則。先來看一些概念 物件導向的概念 簡單地說 物件導向程式設計 object oriented programming 簡稱oop就是使我們分析 設計 和實現乙個系統的方法盡可能地接近我們認識乙個系統的方法。1 描述物件之間的相互作用 2 物件導向的方法包括,物件導向的分析...

python 中類的繼承

python 中的類可以繼承父類這是眾所周知的。突然發現遇到乙個問題,如果父類和子類都含有某個方法,是採用什麼掉用方式呢,我想的是會呼叫之類方法,如果不存在,則呼叫父類方法。python 應該滿足該就近原則。還是動手驗證下記得清楚,儲存檔案為test.py class parent object d...