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

Mary-Kate Olsen
Libérer: 2024-11-27 02:37:10
original
774 Les gens l'ont consulté

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal