super()是python中子類呼叫父類的一種方法:
對於不呼叫super().init()會出現某些錯誤:
詳情請看:
以上**執行的時候會報錯:class
engine
:def
__init__
(self)
: self.performance =
80class
skeleton
:def
__init__
(self)
: self.shape =
'rectangle'
class
car(engine, skeleton)
:def
__init__
(self)
:super()
.__init__(
)def
deliver
(self)
(self.performance)
(self.shape)
if __name__ ==
'__main__'
: bmw = car(
) bmw.deliver(
)
修改方案:80
traceback (most recent call last):
file "/root/myproject/mywebsite/test.py", line 40, in bmw.deliver()
file "/root/myproject/mywebsite/test.py", line 35, in deliver
print(self.shape)
attributeerror: 'car' object has no attribute 'shape'
class
engine
:def
__init__
(self)
: self.performance =
80class
skeleton
:def
__init__
(self)
: self.shape =
'rectangle'
class
car(engine, skeleton)
:def
__init__
(self)
:# 單獨呼叫兩個父類
engine.__init__(self)
skeleton.__init__(self)
defdeliver
(self)
(self.performance)
(self.shape)
if __name__ ==
'__main__'
: bmw = car(
) bmw.deliver(
)
python 中類繼承的super 方法
參考 python中的super 方法主要用於子類引用父類方法,因為這樣做可以提高 的復用性 usr bin env python coding utf 8 用於測試類繼承的super 方法 class a object 父類 def init self,a,b self.a a self.b b ...
python類中super 用法
note super only works for new style classes.super 函式的乙個常見用法是在 init 方法中確保父類被正確的初始化了作用super 函式是子類用於呼叫父類 超類 的乙個方法。super 是用來解決多重繼承問題的,直接用類名呼叫父類 base.init ...
Python呼叫父類方法之super()
super 方法的語法 super type object or type super 是用來解決多重繼承問題的,直接用類名呼叫父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查詢順序 mro 重複呼叫 鑽石繼承 等種種問題。在super方法中包含了cj演算法 確保每個類被呼叫一次 具...