Cameron Simpson <c...@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. > > to > 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. I suggest: 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 | Ben Finney -- https://mail.python.org/mailman/listinfo/python-list