クラスは2つのクラスを継承するとしましょう。 サブクラスの順序とは独立して、引数を受け入れるクラスに引数が渡されるようにするにはどうすればよいですか?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")
が原因のinit引数にはTypeErrorを返します。エラーは単に使用することによって修正される
:
...
class MyClass(Generic,Generic2):
...
を私はsuper()
を初期化するクラスを決定するMROを使用していることを前提としています。
質問:Python3では、サブクラスの順序とは関係なく、引数が正しいサブクラスに確実に送信されます。
は(穏やかな...私は何もOOの非常にフレーク状の知識を持っている!)
むしろ[Pythonのsuper()と思っています!](http://rhettinger.wordpress.com/2011/05/26/super-considered-super/)は、問題を解決するのではなく、問題を解決します;)短いバージョン:注文の大部分を制御せず、一貫性のあるインターフェースと共通の基本クラスを解決します。 – delnan