python-繼承如何工作
提問人:楊紫紅發(fā)布時(shí)間:2020-12-04
為了使用繼承,我們把基本類的名稱作為一個(gè)元組跟在定義類時(shí)的類名稱之后。然后,我們注意到基本類的__init__方法專門使用 self 變量調(diào)用,這樣我們就可以初始化對(duì)象的基本類部分。這一點(diǎn)十分重要——Python 不會(huì)自動(dòng)調(diào)用基本類的 constructor,你得親自專門調(diào)用它。
我們還觀察到我們?cè)诜椒ㄕ{(diào)用之前加上類名稱前綴,然后把 self 變量及其他參數(shù)傳遞給它。 注意,在我們使用 SchoolMember 類的 tell 方法的時(shí)候,我們把 Teacher 和Student 的實(shí)例僅僅作為 SchoolMember 的實(shí)例。
另外,在這個(gè)例子中,我們調(diào)用了子類型的 tell 方法,而不是 SchoolMember類的 tell 方法??梢赃@樣來(lái)理解,Python 總是首先查找對(duì)應(yīng)類型的方法,在這個(gè)例子中就是如此。如果它不能在導(dǎo)出類中找到對(duì)應(yīng)的方法,它才開始到基本類中逐個(gè)查找。基本類是在類定義的時(shí)候,在元組之中指明的。
一個(gè)術(shù)語(yǔ)的注釋——如果在繼承元組中列了一個(gè)以上的類,那么它就被稱作 多重繼承 。
我們還觀察到我們?cè)诜椒ㄕ{(diào)用之前加上類名稱前綴,然后把 self 變量及其他參數(shù)傳遞給它。 注意,在我們使用 SchoolMember 類的 tell 方法的時(shí)候,我們把 Teacher 和Student 的實(shí)例僅僅作為 SchoolMember 的實(shí)例。
另外,在這個(gè)例子中,我們調(diào)用了子類型的 tell 方法,而不是 SchoolMember類的 tell 方法??梢赃@樣來(lái)理解,Python 總是首先查找對(duì)應(yīng)類型的方法,在這個(gè)例子中就是如此。如果它不能在導(dǎo)出類中找到對(duì)應(yīng)的方法,它才開始到基本類中逐個(gè)查找。基本類是在類定義的時(shí)候,在元組之中指明的。
一個(gè)術(shù)語(yǔ)的注釋——如果在繼承元組中列了一個(gè)以上的類,那么它就被稱作 多重繼承 。
繼續(xù)查找其他問題的答案?
相關(guān)視頻回答
點(diǎn)擊加載更多評(píng)論>>