Should one always add super().__init__() to the __init__?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Sat Sep 29 13:17:20 EDT 2012


On Sat, 29 Sep 2012 06:27:47 -0700, Ramchandra Apte wrote:

> Should one always add super().__init__() to the __init__? The reason for
> this is the possibility of changing base classes (and forgetting to
> update the __init__).

No. Only add code that works and that you need. Arbitrarily adding calls 
to the superclasses "just in case" may not work:



py> class Spam(object):
...     def __init__(self, x):
...             self.x = x
...             super(Spam, self).__init__(x)
...
py> x = Spam(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 4, in __init__
TypeError: object.__init__() takes no parameters



-- 
Steven



More information about the Python-list mailing list