On 01/31/2014 06:28 PM, Terry Reedy wrote:

Construct a house:
   Clear and grade house site.
   Bring in power and water.
   Built temporary structures.
   Built foundation.
   Built house on foundation.

For most classes, __new__ stops with the foundation -- the bare object object 
(with the class name slapped onto it). A
*house* is not constructed until the house is constructed on top of the 
foundation.

On the ground programming has the dividing line at:

  immutable objects --> everything done in __new__

  mutable objects --> everything done in __init__

Typically, immutable objects are not created in Python code because, well, it's really dang hard (__slots__, anyone?), but one still needs to understand how __new__ and __init__ go together to do the more interesting stuff (such as having __new__ return a dynamically selected subclass, which still needs to be (or not be) __init__ed).

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

Reply via email to