new style classes, __new__, __init__

Larry Bates larry.bates at vitalEsafe.com
Tue Sep 16 15:18:45 EDT 2008


Torsten Mohr wrote:
> 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.
> 

New style classes should be based on object:

class C2(object):

-Larry



More information about the Python-list mailing list