On 2014-02-01 01:10, Roy Smith wrote:
In article <mailman.6233.1391214984.18130.python-l...@python.org>,
Ethan Furman <et...@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.
You could argue that construction is not complete until the instance
has been initialised. In the case of C++, all you have is the
initialiser, so doesn't really matter, but Python has __new__ and
__init__, so it _does_ matter.
[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" :-)
--
https://mail.python.org/mailman/listinfo/python-list