new style classes, __new__, __init__

Torsten Mohr tmohr at s.netic.de
Tue Sep 16 21:12:59 CEST 2008


Hi,

i have some questions related to new style classes, they look
quite useful but i wonder if somebody can give me an example
on constructors using __new__ and on using __init__ ?

I just see that when using it i can't give parameters to __new__
and when i additionally define __init__ then __new__ is not
called.

So i can use __new__ only for classes whose constructors don't
have parameters?


class C2:
    def __new__(self):
        print "new called"
        self.a = 8

    def __init__(self, a):
        print "init called"
        self.a = a

    def fct(self):
        print self.a


a = C2(7)
a.fct()


This way __new__ is not called, if i remove __init__ then
there are too many parameters to __new__, if i add a parameter
to __new__ then it says that __new__ does not take arguments.


Thanks for any hints,
Torsten.




More information about the Python-list mailing list