2016-06-02 2 views
0

J'essaie d'écrire un code simple qui utilise une variable globale. Je reçois l'erreur suivanteComment utiliser la variable globale en Python

UnboundLocalError: local variable 'x' referenced before assignment

global x 

def update():  
    x = x + 1 

x = 0 
update() 
print(x) 

Répondre

0

Votre erreur est survenue parce que dans la fonction update, vous essayez de modifier une variable (x) non défini, au moins pas localement. Le mot-clé global doit être à l'intérieur de la fonction, et donc dire que le x dont vous parlez est celui défini à l'extérieur de la fonction (donc définie globalement):

def update(): 
    global x 
    x = x + 1 

x = 0 
update() 
print(x) 

Cela génèrerait 1, comme prévu.

Vous pouvez jeter un oeil à this réponse bien détaillée concernant l'utilisation du mot-clé global.

+0

Cela a fonctionné, mais pourquoi cette erreur se produit. – Atinesh

+0

@Atinesh a édité ma réponse pour ajouter des informations supplémentaires, dites-moi si cela reste flou. – 3kt