__init__() メソッドを使用した Python super() の理解 [重複] 質問する

__init__() メソッドを使用した Python super() の理解 [重複] 質問する

なぜsuper()使用されるのですか?

Base.__init__の使用には違いがありますかsuper().__init__?

class Base(object):
    def __init__(self):
        print "Base created"
        
class ChildA(Base):
    def __init__(self):
        Base.__init__(self)
        
class ChildB(Base):
    def __init__(self):
        super(ChildB, self).__init__()
        
ChildA() 
ChildB()

ベストアンサー1

super()ベースクラスを明示的に参照しなくて済むのは良いことですが、主な利点は多重継承にあり、あらゆる種類の楽しいもの起こり得る。super の標準ドキュメントまだお持ちでない場合は、ぜひご覧ください。

ご了承くださいPython 3.0で構文が変更されましたsuper().__init__():代わりに、super(ChildB, self).__init__()IMO のほうがかなり良いと言うこともできます。標準ドキュメントでは、使用ガイドsuper()それは非常に説明的です。

おすすめ記事