python中的建構函式是__init__函式。在python中,子類如果定義了建構函式,而沒有呼叫父類的,那麼python不會自動呼叫,也就是說父類的建構函式不會執行。
比如有test.py的module檔案:
class a:
def __init__(self, name):
self.name = name
class b(a):
def __init__(self, age):
self.age = age
子類b繼承自a,但是子類b的建構函式沒有呼叫a的建構函式。下面我們這樣測試:
>>>import test
>>>b = test.b(15)
>>>b.age
15>>>b.name
attributeerror: 'b' object has no attribute 'name'
由於b沒有呼叫a的建構函式,因此,例項b上面也沒有屬性name,造成訪問出錯。 python的建構函式
1 foobar的建構函式 3 解決辦法 將傳遞類bird的初始函式寫入songbird的初始化中 class songbird bird def init self bird.init self self.sound squawk def sing self print self.song 或者使...
C 中構造函式呼叫建構函式
include include using namespace std struct cls cls int main 列印結果是不定的,不一定為0 奇怪的地方在於建構函式中呼叫了自己的另乙個建構函式 我們知道,當定義乙個物件時,會按順序做2件事情 1 分配好記憶體 非靜態資料成員是未初始化的 2 ...
C 中構造函式呼叫建構函式
include stdlib.h include iostream using namespace std struct clscls int main 列印結果是不定的,不一定為0 奇怪的地方在於建構函式中呼叫了自己的另乙個建構函式 我們知道,當定義乙個物件時,會按順序做2件事情 1 分配好記憶體...