にスーパーコンストラクタを呼び出すために、私が見てきた標準コードは次のとおりです。Aより良い方法はPython 2.7で親クラスのコンストラクタを呼び出すにはPython 2.7
super(Child, self).__init__(self, val)
、
Child
がどこにありますか子クラス。 Python 3.xでは、これは単純化されていますが、今は2.7を使用する必要があります。私の質問は、Python 2.7でsuperの "標準的な"使用が良いとは思いません:
super(self.__class__, self).__init__(self, val)
?
これをテストしたところ、うまくいきました。このアプローチを使用しない理由はありますか?
:
出力:それはではPython 2でのPython 3
super()
を使用することができます。 –'self .__ class__'を渡すのと同じくらい単純だった場合、' super'は最初にその引数を要求するようには設計されていませんでした。 – user2357112
あなたは、最初に意図したクラスではなく、チェーンの次のクラスを参照します。いい視点ね。 – PProteus