Python中的建構函式

2021-08-21 21:17:33 字數 531 閱讀 8843

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 分配好記憶體...