__init__ is the initialiser

Roy Smith roy at panix.com
Sat Feb 1 02:10:46 CET 2014

In article <mailman.6233.1391214984.18130.python-list at python.org>,
 Ethan Furman <ethan at stoneleaf.us> wrote:

> I found calling __init__ the constructor very confusing.

I've heard many people say this, and it's always sort of befuddled me.

In C++, a constructor is really an initializer too.  By the time C++'s 
Foo::Foo() or Python's Foo.__init__() get called, memory has already 
been allocated, so I would say the object has been constructed.  Yet, 
C++ people are perfectly happy calling this "thing that takes some 
allocated hunk of memory and sets its attributes to useful values" a 
constructor[1], and Python people are not.

[1] Well, they really call it a ctor, but I chalk that up to the same 
sort of silliness that makes pythonistas pronounce "__" as "dunder" :-)

More information about the Python-list mailing list