__init__ function problem

kelin,zzf818@gmail.com zzf818 at gmail.com
Tue Nov 7 21:14:01 EST 2006


Hi,
I've read all of this. And I am clear about it.
Thanks all.
Best Regards!

Gabriel Genellina wrote:
> At Tuesday 7/11/2006 21:47, Jia Lu wrote:
>
> > > In Python, the real constructor is called __new__, >
> > > Carl Banks
> >
> >But the code below won't invoke __new__:
>
> Is this a question, or just for making things more and more confusing
> to beginners?
>
> >class Test:
> >     def __new__(self, value):
> >         print "__new__",value
>
> For old-style classes __new__ is not used. On new-style classes it's
> used mostly for dealing with immutable objects. The code should be:
>
> class NewStyle(object):
>      "A new style class inherits from object in some way"
>      def __new__(cls, value):
>          print "NewStyle.__new__",value
>          return super(NewStyle, cls).__new__(cls, value)
>          # return object.__new__(cls, value) for lazy people
>
>      def __init__(self, value):
>          print "NewStyle.__init__",value
>
> class OldStyle:
>      "An old style class does not inherit from object"
>      def __init__(self, value):
>          print "OldStyle.__init__",value
>
> n = NewStyle(1)
> o = OldStyle(2)
>
>
> --
> Gabriel Genellina
> Softlab SRL
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar




More information about the Python-list mailing list