On 2014-02-01 02:52, Steven D'Aprano wrote:
On Fri, 31 Jan 2014 20:10:46 -0500, 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.

[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" :-)


I see your smiley, but the comparison is ridiculous.

"Constructor" is three syllables; "ctor" isn't readily pronounceable in
English at all, rather like Cthulhu. (I can't think of any standard
English words with a "CT" in them at all, let alone at the start of the
word). The best I can come up with is "KUH TOR" or possibly "SEE TOR",
both of which are clumsy, and only save a single syllable.

So you've never used the word "ctenoid"? How strange! :-)

(adj. - Resembling a comb; having projections like the teeth of a comb.)

On the other hand, "double leading and trailing underscore" is ten
syllables. "Dunder" is two, a significant saving, and it's a readily
pronounceable word in English (and probably Dutch). There's nothing silly
about abbreviating "double leading and trailing underscore" as dunder.


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to