confused about __new__

Fredrik Tolf fredrik at dolda2000.com
Tue Dec 27 00:48:45 EST 2011


On Mon, 26 Dec 2011, K. Richard Pixley wrote:
> I don't understand.  Can anyone explain?

I'm also a bit confused about __new__. I'd very much appreciate it if 
someone could explain the following aspects of it:

  * The manual (<http://docs.python.org/reference/datamodel.html>) says
    that __new__ is "a static method (special-cased so you need not declare
    it as such)". What does "special-cased" mean? Apparently, for
    instance, in OP's case,  Python did not automatically detect that it
    should not be bound as a method.

  * Is there any part of the manual that explains, holistically, the
    greater context of object instantiation into which __new__ fits? I can
    only find small parts of it spread around the documentation for __new__
    and __init__, but no complete explanation of it. There are several
    things I'm wondering about, like what it means to call a type object at
    all; how methods, properties and the like are bound; how pickle can
    instantiate a class without calling __init__; when and whether __dict__
    is created and a couple of other things. Is there a complete
    documentation of the process anywhere that I haven't managed to find?

--

Fredrik Tolf




More information about the Python-list mailing list