@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 ...