Commit 52e46bd2 authored by Ethan Furman's avatar Ethan Furman

Issue20467: clarify __init__'s role

parent aecea3d9
...@@ -1081,13 +1081,17 @@ Basic customization ...@@ -1081,13 +1081,17 @@ Basic customization
.. index:: pair: class; constructor .. index:: pair: class; constructor
Called when the instance is created. The arguments are those passed to the Called after the instance has been created (by :meth:`__new__`), but before
class constructor expression. If a base class has an :meth:`__init__` method, it is returned to the caller. The arguments are those passed to the
the derived class's :meth:`__init__` method, if any, must explicitly call it to class constructor expression. If a base class has an :meth:`__init__`
ensure proper initialization of the base class part of the instance; for method, the derived class's :meth:`__init__` method, if any, must explicitly
example: ``BaseClass.__init__(self, [args...])``. As a special constraint on call it to ensure proper initialization of the base class part of the
constructors, no value may be returned; doing so will cause a :exc:`TypeError` instance; for example: ``BaseClass.__init__(self, [args...])``.
to be raised at runtime.
Because :meth:`__new__` and :meth:`__init__` work together in constructing
objects (:meth:`__new__` to create it, and :meth:`__init__` to customise it),
no non-``None`` value may be returned by :meth:`__init__`; doing so will
cause a :exc:`TypeError` to be raised at runtime.
.. method:: object.__del__(self) .. method:: object.__del__(self)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment