J'essaie de comprendre la portée dans les classes imbriquées en Python. Voici mon code exemple:Portée des classes imbriquées?
class OuterClass:
outer_var = 1
class InnerClass:
inner_var = outer_var
La création de la classe ne se termine pas et je reçois l'erreur:
<type 'exceptions.NameError'>: name 'outer_var' is not defined
Essayer inner_var = Outerclass.outer_var
ne fonctionne pas. je reçois:
<type 'exceptions.NameError'>: name 'OuterClass' is not defined
Je suis en train d'accéder au outer_var
statique de InnerClass
.
Existe-t-il un moyen de le faire?
Il pourrait être utile d'ajouter à quelle (s) version (s) de Python votre réponse fonctionnera. –
J'ai écrit ceci avec 2.6/2.x à l'esprit, mais, en le regardant, je ne vois rien qui ne fonctionnerait pas de la même manière dans 3.x. –
Je ne comprends pas très bien ce que vous voulez dire dans cette partie, "(Si vous changez l'objet auquel le nom Outer est lié, alors ce code utilisera cet objet la prochaine fois qu'il est exécuté.)" Pouvez-vous m'aider? ? – batbrat