Maison >développement back-end >Tutoriel Python >Comment résoudre l'erreur UnboundLocalError de Python : variables globales ou locales ?

Comment résoudre l'erreur UnboundLocalError de Python : variables globales ou locales ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-27 02:37:10876parcourir

How to Solve Python's UnboundLocalError: Global vs. Local Variables?

UnboundLocalError en Python : résolution des problèmes de portée des variables

Le message d'erreur "UnboundLocalError : variable locale 'Var1' référencée avant l'affectation" indique qu'un la variable locale dans une fonction est accessible avant de lui attribuer une valeur. Dans le code fourni, la variable "Var1" n'est pas définie dans le cadre de "function()", mais elle est utilisée dans les instructions conditionnelles et l'instruction d'affectation à l'intérieur de la fonction.

Pour résoudre ce problème, il est nécessaire de déclarer les variables "Var1" et "Var2" comme variables globales au sein de la fonction. Les variables globales sont définies au niveau du module et sont accessibles depuis les fonctions. Pour déclarer ces variables comme globales, ajoutez la ligne suivante en haut de la fonction :

global Var1, Var2

En déclarant les variables comme globales, l'interpréteur Python comprendra qu'elles doivent plutôt être résolues à partir de la portée au niveau du module. de créer des copies locales au sein de la fonction. Cela permettra à la fonction de référencer et de modifier les variables "Var1" et "Var2" comme prévu.

Remarque : L'utilisation de variables globales dans les fonctions doit être évitée lorsque cela est possible, car cela peut conduire à un code déroutant et sujet aux erreurs. Une meilleure pratique consiste à transmettre explicitement les variables de l'appelant à l'appelé en tant que paramètres ou à les renvoyer en tant que résultats.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn