Variable locale référencée avant affectation en Python
Ce tutoriel expliquera pourquoi l’erreur local variable referenced before assignment
se produit et comment elle peut être résolue.
La local variable referenced before assignment
se produit lorsqu’une variable est référencée avant l’affectation dans le corps d’une fonction. L’erreur se produit généralement lorsque le code tente d’accéder à la variable globale. Comme les variables globales ont une portée globale et sont accessibles de n’importe où dans le programme, l’utilisateur essaie généralement d’utiliser la variable globale dans une fonction.
En Python, nous n’avons pas besoin de déclarer ou d’initialiser la variable avant de l’utiliser; une variable est toujours considérée comme locale par défaut. Par conséquent, lorsque le programme essaie d’accéder à la variable globale au sein d’une fonction sans la spécifier comme globale, le code renverra l’erreur local variable referenced before assignment
, puisque la variable référencée est considérée comme une variable locale.
La Solution de l’erreur local variable referenced before assignment
en Python
Nous pouvons déclarer la variable comme globale en utilisant le mot-clé global
en Python. Une fois la variable déclarée globale, le programme peut accéder à la variable dans une fonction et aucune erreur ne se produira.
L’exemple de code ci-dessous illustre le scénario de code dans lequel le programme se retrouvera avec l’erreur variable locale référencée avant affectation
.
count = 10
def myfunc():
count = count + 1
print(count)
myfunc()
Production:
UnboundLocalError: local variable 'count' referenced before assignment
Nous devons déclarer la variable count
comme globale en utilisant le mot-clé global
pour résoudre cette erreur. L’exemple de code ci-dessous montre comment l’erreur peut être résolue en utilisant le mot-clé global
dans le scénario de code ci-dessus.
count = 10
def myfunc():
global count
count = count + 1
print(count)
myfunc()
Production:
11