Python Super關鍵字子類繼承父類

2021-10-19 10:29:42 字數 1451 閱讀 7248

參考

class

father()

:def

__init__

(self)

:print

("這是父類的"

)class

son(father)

:def

__init__

(self)

: father.__init__(self)

print

("這是子類的"

)son = son(

)這是父類的

這是子類的

: 在子類中呼叫父類方法時,要傳入self這一引數,相當於把類的例項化物件傳入,不然會報錯。

通過這樣呼叫父類,我們就實現了既可以呼叫子類方法,也可以呼叫父類方法。如果不這樣呼叫的話,當子類繼承乙個父類的時候,使用__init__方法的話,子類就會覆蓋父類,我們就無法訪問父類的__init__方法。

class

father()

:# father為父類

def__init__

(self)

:print

("這是父類的"

)class

son(father)

:# father為son的父類

def__init__

(self)

:super

(son, self)

.__init__(

)print

("這是子類的"

)

son = son(

)# 類的例項化物件

這是父類的

這是子類的

有些同學可能會問,既然上面的方法可以使用,為何還要用super方法呢?下面我們再看乙個例子:

class

grandfather()

:# grandfather為父類

def__init__

(self)

:print

("這是父類的"

)class

son(grandfather)

:# grandfather為son的父類

def__init__

(self)

:super

(son, self)

.__init__(

)print

("這是子類的"

)

son = son(

)# 類的例項化物件

這是父類的

這是子類的

我們可以看到,當我們修改了son繼承的類時,**的結果仍然是相同的,我們不需要改變內部的父類名。用第一種方法時有乙個不好的地方就是,需要將父類名寫到子類中,而我們用super方法就可以解決這個問題。

Python super關鍵字用法

使用super關鍵字,會按照繼承順序執行相應類中的方法,在沒有多繼承的情況下,一般是執行父類 coding utf 8 usr bin python class counter object def init self super counter,self setattr counter 0 def...

new關鍵字 this關鍵字 base關鍵字

使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...

this關鍵字 static關鍵字

1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...