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
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a