Création de la fonction foo
=> création et affectation de x a partir d'un entier
=> Création de la class bar
==> affectation de x à partir de x (qui n'existe pas dans la class bar ...) => erreur
Pas tout à fait sinon la seconde méthode marcherait pas non plus.
Création de la fonction foo
=> création et affectation de x a partir d'un entier
=> Création de la class bar
==> le bloc crée une variable x donc on retire x de la table
==> affectation de x à partir de x => erreur
Du coup ça fonctionne :
deffoo():x=1classbar:y=x+1returnbarfoo()
Du coup ça plante :
deffoo():x=1classbar:y=x+1x=1returnbarfoo()
Toutes les variables crées dans un bloque cachent les variables disponibles dès le début du bloque. Ce n'est pas la déclaration d'une variable à partir d'elle même qui pose problème, mais le fait d'utiliser une variable qui sera surchargée dans ce même bloque.
[^] # Re: Et pourtant c'est simple
Posté par barmic 🦦 . En réponse au journal Quizz Python : esp[èa]ce de nom. Évalué à 5.
Pas tout à fait sinon la seconde méthode marcherait pas non plus.
Création de la fonction foo
=> création et affectation de x a partir d'un entier
=> Création de la class bar
==> le bloc crée une variable x donc on retire x de la table
==> affectation de x à partir de x => erreur
Du coup ça fonctionne :
Du coup ça plante :
Toutes les variables crées dans un bloque cachent les variables disponibles dès le début du bloque. Ce n'est pas la déclaration d'une variable à partir d'elle même qui pose problème, mais le fait d'utiliser une variable qui sera surchargée dans ce même bloque.
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll