use super() to call the parent constructor
このページは日本語には対応しておりません。随時翻訳に取り組んでいます。
翻訳に関してご質問やご意見ございましたら、
お気軽にご連絡ください。
ID: python-best-practices/init-call-parent
Language: Python
Severity: Warning
Category: Best Practices
Description
Calling the parent constructor should be done by calling super()
, not by calling the parent object directly.
Non-Compliant Code Examples
class Class(Parent):
def __init__(self):
SomeClass.__init__(self) # should use super()
Compliant Code Examples
# More than one parent, we need to know exactly what
# parent constructor to use
class DummyCIVisibilityWriter(DummyWriterMixin, CIVisibilityWriter):
def __init__(self, *args, **kwargs):
CIVisibilityWriter.__init__(self, *args, **kwargs)
DummyWriterMixin.__init__(self, *args, **kwargs)
self._encoded = None
class Class(Parent):
def foo(self):
SomeClass.__init__(self) # outside of __init__, valid
class Class(Parent):
def __init__(self):
super().__init__(self)