Bonjour,
Je ne suis plus tout à fait débutant en Python, même si je suis loin d'être un développeur chevronné.
Je voudrais vous poser une question liée à la portée de variables et à des appels imbriqués de fonctions.
J'ai besoin qu'une fonction (fonction1) appelle une fonction (fonction2) qui modifie une variable définie dans le corps de fonction1.
J'ai ajouté un bout de code pour mieux vous faire comprendre.
À l'appel de fonction1, Python recrache l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 def fonction1(): """ la fonction "de base" """ liste = [] fonction2() def fonction2(): """ une sous-fonction qu'on a besoin d'appeler dans la fonction de base. """ liste.append("une chaine") print("C'est parti pour un essai.") fonction1()
"NameError: name 'liste' is not defined".
Cela me paraît un peu étrange. Je croyais que dans un encfhaînements d'appels de fonctions, Python remonte pas à pas vers la première fonction, et regarde dans chaque corps de fonction s'il y trouve la variable cherchée.
Bref, je ne comprends pas ce comprotement, et j'espère trouver un moyen de faire marcher cette construction tout de même.
Merci beaucoup d'avoir lû ma question!
Partager