Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Metadata

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)