Python 子類繼承父類建構函式說明

2021-09-30 01:46:17 字數 2080 閱讀 3709

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

子類不重寫 __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: runoob

son 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(

))

輸出結果為:

hi

son 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: runoob

hison runoob

子類繼承父類,必須宣告父類的建構函式

class entity def init self,object type print parent class init called self.object type object type def get context length self raise exception get con...

py 子類繼承父類

class 派生類名 基類名 usr bin python coding utf 8 class parent 定義父類 parentattr 100def init self print 呼叫父類建構函式 defparentmethod self print 呼叫父類方法 defsetattr s...

子類繼承和呼叫父類的構造方法

1.如果子類沒有定義構造方法,則呼叫父類的無引數的構造方法,2.如果子類定義了構造方法,不論是無引數還是帶引數,在建立子類的物件的時候,首先執行父類無引數的構造方法,然後執行自己的構造方法。3.如果子類呼叫父類帶引數的構造方法,可以通過super 引數 呼叫所需要的父類的構造方法,切該語句做為子類構...