python 子類呼叫父類函式的方法

2022-08-31 23:57:20 字數 1296 閱讀 3746

python中的子類中的__init__()函式會覆蓋父類的函式,一些情況往往需要在子類裡呼叫父類函式。

如下例程裡,???處是需要呼叫父類函式的地方,接下來結合例程具體介紹。

1  1 #

-*- coding:utf-8 -*-

2 2 class

student:

3 3 def

__init__

(self,name):

4 4 self.name=name

5 5 def

ps(self):

6 6 print('

i am %s

'%self.name)

7 7

8 8 class

score(student):

9 9 def

__init__

(self,name,score):

10 10 self.score=score

11 11 ???

12 12 def

ps1(self):

13 13 print('

i\'m %s,%s

' %(self.name,self.score))

14 14

15 15 score('

bob','99'

).ps()

16 16 score('

bob','

99').ps1()

python3.5中,通過查閱資料,有如下幾種呼叫方式。

第一種是直接法。使用父類名稱直接呼叫,形如 parent_class.parent_attribute(self),對應例程即語句:

student.__init__(self,name)

第二種是通過super函式,形如 super(child_class, child_object).parent_attribute(arg)。第乙個引數表示呼叫父類的起始處,第二個引數表示類例項(一般使用self),父類方法的引數只有self時,引數args不用寫。此外,類內部使用時,child_class, child_object也可省略。對應例程:

super(score,self).__init__(name)

或者:

super().__init__(name)

在類外面也可使用super函式,但是要有child_class, child_object兩個引數。

Python 子類呼叫父類方法

python在繼承時,如果子類重寫了init 函式,則父類的init 不會被呼叫,這時如果子類只是想要對父類的init 函式進行簡單的擴充套件的話,是很不方便的。那麼有沒有比較方便的方法來從子類呼叫父類呢?第一種是直接使用父類的類名來直接呼叫。python3.3 class parent def i...

python子類呼叫父類的方法

情況一 子類需要自動呼叫父類的方法 子類不重寫 init 方法,例項化子類後,會自動呼叫父類的 init 的方法。class father object def init self,name self.name name print name s self.name def getname self...

python子類呼叫父類的方法

from python和其他物件導向語言類似,每個類可以擁有乙個或者多個父類,它們從父類那裡繼承了屬性和方法。如果乙個方法在子類的例項中被呼叫,或者乙個屬性在子類的例項中被訪問,但是該方法或屬性在子類中並不存在,那麼就會自動的去其父類中進行查詢。繼承父類後,就能呼叫父類方法和訪問父類屬性,而要完成整...