Sto cercando di capire lo scope nelle classi annidate in Python. Qui è il mio codice di esempio:Ambito delle classi annidate?
class OuterClass:
outer_var = 1
class InnerClass:
inner_var = outer_var
La creazione di classe non viene completata e ottengo l'errore:
<type 'exceptions.NameError'>: name 'outer_var' is not defined
Cercando inner_var = Outerclass.outer_var
non funziona. ottengo:
<type 'exceptions.NameError'>: name 'OuterClass' is not defined
Sto cercando di accedere alla statica outer_var
da InnerClass
.
C'è un modo per farlo?
Potrebbe essere utile aggiungere con quale versione (o versioni) di python la tua risposta funzionerà. –
Ho scritto questo con 2.6/2.x in mente, ma, osservandolo, non vedo nulla che non funzionerebbe allo stesso modo in 3.x. –
Non capisco cosa intendi in questa parte, "(Se cambi l'oggetto al quale è associato il nome esterno, allora questo codice utilizzerà quell'oggetto la prossima volta che verrà eseguito.)" Puoi aiutarmi a capire ? – batbrat