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. 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. -- Steven -- https://mail.python.org/mailman/listinfo/python-list