[Python] Re: Digest di Python, Volume 19, Numero 11
Manlio Perillo
manlio_perillo a libero.it
Ven 16 Nov 2007 13:42:04 CET
Pietro Battiston ha scritto:
> [...]
>
>> Per fare quello che vuoi, devi utilizzare il __new__
>
> Grazie mille, in effetti è proprio quello che mi serviva. Ma __new__
> rimpiazza __init__?
>
No.
Trovi maggiori info qui:
http://www.python.org/doc/newstyle.html
Purtroppo la documentazione sulle "nuove" classi non è stata ancora del
tutto integrata nella documentazione ufficiale.
> Nella documentazione ufficiale
> (http://docs.python.org/ref/customization.html), sta scritto " If
> __new__() returns an instance of cls, then the new instance's __init__()
> method will be invoked"
> In un'altra pagina sull'argomento
> (http://www.wellho.net/mouth/1146_-new-v-init-python-constructor-alternatives-.html),
> invece ho trovato scritto "If __new__ is defined on a class, it is
> called in preference to __init__"
>
> Ma il seguente codice non mi conferma né l'una né l'altra ipotesi!
>
> #####################
> import Tkinter
>
> class finestra(Tkinter.Toplevel):
class finestra(object, Tkinter.Toplevel):
> def __new__(cls):
> print "uno"
> return Tkinter.Tk()
> def __init__(self):
> print "due"
> root=finestra()
> #####################
>
> [...]
Manlio Perillo
Maggiori informazioni sulla lista
Python