構造方法名字固定為__init__,在建立物件時會自動呼叫,用於實現類的初始化:
>>> classperson:
...
def__init__(self, name, age=0):
... self.name =name
... self.age =age
...
defget_name(self):
...
return
self.name
...
defset_name(self, name):
... self.name =name
...
defget_age(self):
...
return
self.age
...
defset_age(self, age):
... self.age =age
...>>> p = person('
韓曉萌','21'
)>>>p.get_name()
'韓曉萌
'>>>p.get_age()'21
'>>>
如果子類重寫了__init__方法,那麼在方法內必須顯式的呼叫父類的__init__方法:
# 沒有呼叫父類的__init__方法>>> class
man(person):
...
def__init__
(self, length):
... self.length =length
...
defget_length(self):
...
return
self.length
...
defset_length(self, length):
... self.length =length
...>>> m = man('
18cm')
>>>m.get_length()
'18cm
'>>>m.get_name()
traceback (most recent call last):
file
"", line 1, in
file
"", line 6, in
get_name
attributeerror:
'man
' object has no attribute '
name
'# 呼叫了父類的__init__方法
>>> class
woman(person):
...
def__init__(self, name, age=0, cup='a'
):... super().
__init__
(name, age)
... self.cup =cup
...
defget_cup(self):
...
return
self.cup
...
defset_cup(self, cup):
... self.cup =cup
...>>> w = woman('
楊超越', 21, 'c'
)>>>w.get_cup()'c
'>>>w.get_name()
'楊超越
'>>>w.get_age()
21
繼承類構造方法使用
1,呼叫未繫結的超類構造方法 class bird def init self self.hungry true defeat self ifself.hungry print eee self.hungry false else print no,thanks print eat class so...
python類的繼承及重寫父類方法
寫python有一年多了,平日使用python解決一些問題,調一些介面,用一些框架,雖然不影響都可以寫,但一直沒有好好的花時間去理解python概念性的東西。也許,這也是寫了這麼久一直不能有所進步的原因,從今天起,來重新好好的學習一下python的相關概念。class tree def init s...
子類的構造方法必須繼承父類的構造方法
public class person public person string name public class athletes extends person person類定義了乙個有參的構造方法,athletes類中會報錯,解決辦法是person類中加乙個無參的構造方法 父類寫了有參建構函...