OOP / language design question

Carl Banks invalidemail at aerojockey.com
Thu Apr 27 04:38:25 EDT 2006


Lawrence D'Oliveiro wrote:
> In article <1145969107.837185.212970 at e56g2000cwe.googlegroups.com>,
>  "Carl Banks" <invalidemail at aerojockey.com> wrote:
>
> >bruno at modulix wrote:
> >> cctv.star at gmail.com wrote:
> >> > I was wondering, why you always have to remember to call bases'
> >> > constructors
> >>
> >> <pedantic>
> >> s/constructors/__init__/
> >>
> >> the __init__() method is *not* the constructor. Object's instanciation
> >> is a two-stage process:  __new__() is called first, then __init__().
> >> </pedantic>
> >
> >You know, Python's __init__ has almost the same semantics as C++
> >constructors (they both initialize something that's already been
> >allocated in memory, and neither can return a substitute object).  I
> >actually think constructors are misnamed in C++, they should be called
> >initializers (and destructors finalizers).
>
> "Constructor" is also the term used for the corresponding method in Java.
>
> Is there any OO language that does not use "constructor" in this sense?
> I don't think there is one. This is standard OO terminology.

Python?

Yeah, I realize it's common terminology, but I just think it's a poor
name.   That Python doesn't really call __init__ a constructor is good
(I guess it doesn't really call it anything but __init__), because
constructor would be a bad name for it.


Carl Banks




More information about the Python-list mailing list