有關Python 子類繼承父類建構函式的介紹

如果在子類中需要父類的構造方法就需要顯式地呼叫父類的構造方法,或者不重寫父類的構造方法。

有關Python 子類繼承父類建構函式的介紹

子類不重寫 __init__,例項化子類時,會自動呼叫父類定義的 __init__。

例項

class Father(object): def __init__(self, name): self。name=name print ( “name: %s” %( self。name) ) def getName(self): return ‘Father ’ + self。name class Son(Father): def getName(self): return ‘Son ’+self。name if __name__==‘__main__’: son=Son(‘runoob’) print ( son。getName() )

輸出結果為:

name: runoobSon runoob

如果重寫了__init__ 時,例項化子類,就不會呼叫父類已經定義的 __init__,語法格式如下:

例項

class Father(object): def __init__(self, name): self。name=name print ( “name: %s” %( self。name) ) def getName(self): return ‘Father ’ + self。name class Son(Father): def __init__(self, name): print ( “hi” ) self。name = name def getName(self): return ‘Son ’+self。name if __name__==‘__main__’: son=Son(‘runoob’) print ( son。getName() )

輸出結果為:

hiSon runoob

如果重寫了__init__ 時,要繼承父類的構造方法,可以使用 super 關鍵字:

super(子類,self)。__init__(引數1,引數2,。。。。)

還有一種經典寫法:

父類名稱。__init__(self,引數1,引數2,。。。)

例項

class Father(object): def __init__(self, name): self。name=name print ( “name: %s” %( self。name)) def getName(self): return ‘Father ’ + self。name class Son(Father): def __init__(self, name): super(Son, self)。__init__(name) print (“hi”) self。name = name def getName(self): return ‘Son ’+self。name if __name__==‘__main__’: son=Son(‘runoob’) print ( son。getName() )

輸出結果為:

name: runoobhiSon runoob

有關Python 子類繼承父類建構函式的介紹 | 《Linux就該這麼學》 (linuxprobe。com)