python 類繼承與子類例項初始化

2021-10-16 16:46:37 字數 2256 閱讀 5414

__init__方法介紹:

如果其基類也具有__init__(), 必須顯式地在__init__()呼叫它, 以保證能夠適當地初始化它的基類部分;例如:baseclass.__init__(self, [args...])作為構造器的特殊情況, 它沒有值被返回, 如果返回某個值, 會在執行時丟擲異常typeerror.

1.子類定義了__init__方法時若未顯示呼叫基類__init__方法,python不會幫你呼叫,解釋執行都ok

classa(

):def__init__

(self)

:print

'a'class

b(a)

:def

__init__

(self)

:print

'b'if __name__==

'__main__'

: b=b(

)>>

>

b

2.子類未定義__init__方法時,python會自動幫你呼叫首個基類的__init__方法,注意是首個。即:子類繼承自多個基類時,只有第乙個基類的__init__方法會被呼叫到:

'''

'''classa:

def__init__

(self)

:print

'a'classb:

def__init__

(self)

:print

'b'class

c(b)

:def

__init__

(self)

:print

'c'pass

class

d1(a,b,c)

:pass

class

d2(b,a,c)

:pass

class

d3(c,b,a)

:pass

if(__name__==

'__main__'):

print

'd1------->:'

d1=d1(

)print

'd2------->:'

d2=d2(

)print

'd3------->:'

d3=d3(

)>>

>

d1----

--->:a

d2----

--->:b

d3----

--->

:c

3 基類未定義__init__方法時,若此時子類顯示呼叫基類__init__方法時,python向上超找基類的基類的__init__方法並呼叫,實質同2

classa:

def__init__

(self)

:print

'a'classb:

def__init__

(self)

:print

'b'class

c1(b,a)

:pass

class

c2(a,b)

:pass

class

d1(c1)

:def

__init__

(self)

: c1.__init__(self)

class

d2(c2)

:def

__init__

(self)

: c2.__init__(self)

if(__name__==

'__main__'):

print

'd1------->:'

d1=d1(

)print

'd2------->:'

d2=d2(

)>>

>

d1----

--->:b

d2----

--->:a

----

----

----

----

----

-

python子類如何繼承父類的例項變數?

型別1 父類和子類的例項變數均不需要傳遞 classa object def init self self.name cui defget name self return self.name class b a def init self super b,self init self.age 12...

python子類如何繼承父類的例項變數?

型別1 父類和子類的例項變數均不需要傳遞 class a object def init self self.name cui def get name self return self.name class b a def init self super b,self init self.age ...

類與例項 繼承

練習定義類的時候派生類定義的語法如下所示 class derivedclassname baseclassname 繼承的一般表現形式 class 父類 pass class 子類 父類 passpython有兩個內建函式可被用於繼承機制 1.在父類的基礎上產生子類,產生的子類就叫做派生類 2.父類...