On 1/31/14 9:28 PM, Terry Reedy wrote:
 Most classes have __init__, only very very few have __new__.

*Every* class has .__new__. Mutable builtins and almost all user classes
inherit .__new__ from object. Every class also has .__init__, but it is
mainly inherited from object by immutable builtins.
 >>> tuple.__init__
<slot wrapper '__init__' of 'object' objects>
User classes lacking .__init__ usually inherit it from something other
than object. So objects are constructed by first calling .__new__ and
then passing the result to .__init__. The Python 3 doc should say so.

Sorry, I wasn't clear. I meant (as many have understood) that most user-defined classes define __init__, and that very very few define __new__.

--
Ned Batchelder, http://nedbatchelder.com

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

Reply via email to