On 2012-07-19 11:49, Matteo Perini wrote:

class Window:

    def __init__(self):
        self.i=234
    def do(self,widget):
        def esempio(self):
            return "ciao"

così non ho problemi ma.... come faccio a richiamare all'interno
della def esempio self.i  ????

ad esempio

    def do(self,widget):
        def esempio(self):
            return self.i                 <-------- modifica

c'è un modo per dire che self non è riferita alla def do?
Scusate ma non ho capito bene il comportamento di self quando le def
sono annidate.

Chiama l'argomento di esempio() in un altro modo: this o self2. Il fatto che si chiami self è solo una convenzione, non c'è nessuna feature, e quello che succede è che il self locale oscura quello non-locale, che non hai modo banale di raggiungere.

     def do(self, widget):
         def esempio(this):
             return self.i

--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a