假設一個類繼承2個類:一個接受1個參數,另一個接受無。 如何確保參數獨立於子類的順序傳遞給接受參數的類?將參數傳遞給super()的正確繼承類()
具體來說,我有問題,這個例子:
class Generic(object):
def __init__(self,data):
self.data=data
def do_data(self):
print(self.data)
class Generic2(object):
def __init__(self):
pass
def no_data(self):
print("No_data")
class MyClass(Generic2,Generic):
def __init__(self,data):
self.data=data
super().__init__(data)
A=MyClass("A")
返回一個類型錯誤,由於初始化參數。
錯誤是簡單地用修正:
...
class MyClass(Generic,Generic2):
...
我認爲super()
使用MRO決定初始化的類。
問題是:在Python3中,如何確保將參數發送到與我的子類的順序無關的正確子類?
(溫柔...我有任何東西很酥知識OO!)
取而代之的是閱讀[Python's super()認爲超級!](http://rhettinger.wordpress.com/2011/05/26/super-considered-super/),它解決了問題而不是嘲笑它);簡短版本:接受你不控制(大部分)訂單,併爲一個一致的接口和一個共同的基類。 – delnan