Python n'a que 2 espaces de noms : global et local.
Donc :
# globalclassFoo:# localdefmeth(self):# local (mais un nouveau local, pas celui au dessus)...
Quand une variable n'est pas définie dans l'espace de nom "local", Python le cherche dans l'espace de nom "global". Dans ton exemple, x n'existe pas dans "global", d'où l'erreur.
Le corps de la classe est exécuté lors de la création de la classe, mais le corps de la méthode est exécuté que lorsqu'elle est appelée, l'espace de nom du corps de la classe n'existe donc plus à ce moment là.
[^] # Re: Petite bizarrerie à noter
Posté par David Delassus (site web personnel) . En réponse au journal écrire du code dans le corps d'une classe python. Évalué à 10.
Python n'a que 2 espaces de noms : global et local.
Donc :
Quand une variable n'est pas définie dans l'espace de nom "local", Python le cherche dans l'espace de nom "global". Dans ton exemple,
xn'existe pas dans "global", d'où l'erreur.Le corps de la classe est exécuté lors de la création de la classe, mais le corps de la méthode est exécuté que lorsqu'elle est appelée, l'espace de nom du corps de la classe n'existe donc plus à ce moment là.
Il faut imaginer que ce qu'il se passe c'est ça :
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg