__init__ is the initialiser
ben+python at benfinney.id.au
Sat Feb 1 00:47:42 CET 2014
Cameron Simpson <cs at zip.com.au> writes:
> > On 01/31/2014 12:48 PM, MRAB wrote:
> > >The advantage of calling it the "initialiser" is that it explains
> > >why it's called "__init__".
> On this basis, would it suffice to change the opening sentence from:
> Called when the instance is created.
> Called to initialise a new instance immediately after creation.
> This seems succinct while getting both "initialise" and "new" into the
> line, which makes it clear that there is a separate and earlier "new"
> step. (Conveniently overridable with __new__ :-)
It leaves a naive reader (who isn't yet familiar with the convention for
special names in Python) with the false implication that “__init__” is
usually called *manually*.
I would prefer it to be clear that “__init__” is called automatically,
*during* the constructor's operation. So, instead of:
Called when the instance is created.
Called automatically by the constructor “__new__” during instance
creation, to initialise the new instance.
\ “Why doesn't Python warn that it's not 100% perfect? Are people |
`\ just supposed to “know” this, magically?” —Mitya Sirenef, |
_o__) comp.lang.python, 2012-12-27 |
More information about the Python-list