なぜ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()
それは非常に説明的です。