[Python] gerarchia classe

Daniele Varrazzo piro a develer.com
Gio 19 Lug 2012 12:54:37 CEST


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


Maggiori informazioni sulla lista Python