title: __init__ as a constructor?
body: <p><a href="https://www.diveinto.org/python3/iterators.html#init-method" rel="noreferrer">Dive into Python</a> -</p>
  
  <blockquote>
    <p>It would be tempting but incorrect to
    call this the constructor of the
    class. It's tempting, because it looks
    like a constructor (by convention,
    <code>__init__</code> is the first method defined for the class), acts like one (it's
    the first piece of code executed in a
    newly created instance of the class),
    and even sounds like one (“init”
    certainly suggests a constructor-ish
    nature). Incorrect, because the object
    has already been constructed by the
    time <code>__init__</code> is called, and you
    already have a valid reference to the
    new instance of the class.</p>
  </blockquote>
  
  <p>Quote suggests it is incorrect to call <code>__init__</code> as a <em>constructor</em> because the object is already constructed by the time <code>__init__</code> is called. But! I have always been under the impression that the <em>constructor</em> is called only after the object is constructed because it is essentially used  to initialized the data members of the instance which wouldn't make sense if the object didn't exist by the time <em>constructor</em> was called? (coming from C++/Java background)</p>