Python 入門之類的繼承(四)

2021-10-24 19:57:16 字數 2532 閱讀 3607

@r星校長

4關:多重繼承

在 python 中,多重繼承就是允許子類繼承多個父類,子類可以呼叫多個父類的方法和屬性。但是,當多個父類擁有相同方法名的方法時,我們通過方法名呼叫父類方法就有一定的順序。本關的任務就是讓學習者掌握多重繼承。

請先看下面這個例子:

classa(

object):

deftest

(self)

:print

("this is a.test()"

)classb(

object):

deftest

(self)

:print

("this is b.test()"

)def

check

(self)

:print

("this is b.check()"

)class

c(a,b)

:pass

class

d(a,b)

:def

check

(self)

:print

("this is d.check()"

)class

e(c,d)

:pass

在這個例子中,類c繼承自類a和類b,類d繼承自類a和類b,類e繼承自類c和類d。繼承情況如下圖1所示:

圖 1在我們呼叫e.test()時,在類a和類b中都存在這個方法。但是由於在多重繼承中遵循廣度優先的方式,所以程式最先搜尋類e,然後再搜尋類c和類d。如果還沒找到,再到類a中查詢。若類a中存在這個方法,則呼叫這個方法,若在類a中也沒有找到,則再到類b中查詢。呼叫e.test()結果為:

this is a.test(

)

如果呼叫e.check()方法,那麼先到類e中查詢,然後在類c中查詢,再到類d中查詢。在類d中找到這個方法,呼叫這個方法。呼叫e.check()的結果為:

this is d.check(

)

掌握專業知識是創富的基礎,沒有這個基礎,或是這個基礎打得不夠堅實,接下去的路你將寸步難行。創富者首先要做的便是成為這個行業的專家。

classa(

object):

deftest

(self)

:print

("this is a.test()"

)classb(

object):

deftest

(self)

:print

("this is b.test()"

)def

check

(self)

:print

("this is b.check()"

)# 請在下面填入定義類c的**

########## begin ##########

class

c(a,b)

:########## end ##########

pass

# 請在下面填入定義類d的**

愛是給予自由而非**

爆紅後嫁給韓庚,盧靖姍憑什麼成為人生贏家?

Python 入門之類的繼承

from animalstest import animals 請在下面填入定義fish類的 fish類繼承自animals類 begin class fish animals end def init self,name self.name name defswim self print s會游泳...

python入門之類的繼承

類的繼承 1 定義類的繼承 首先我們來看下類的繼承的基本語法 class classname baseclassname 1 定義類的繼承 首先我們來看下類的繼承的基本語法 class classname baseclassname 在定義類的時候,可以在括號裡寫繼承的類,一開始也提到過,如果不用繼...

Python 入門之類的繼承(二)

r星校長 第2關 覆蓋方法 在子類繼承父類的方法時,若子類需要這個方法具有不同的功能,那麼可以通過覆蓋 overriding 來重寫這個方法。本關的任務是讓學習者掌握通過繼承覆蓋方法。通過繼承覆蓋方法,也就是在子類裡再寫乙個與父類中一樣的方法,實現自己想要實現的功能。例如 class parent ...