Maison > Article > développement back-end > Comment utiliser des variables globales en python
Utilisation des variables globales python : 1. Pour référencer la variable globale, le code est [if i in b:print("%d in list b" %i)]; , le code est [print "before func b:", b].
Utilisation des variables globales python :
Citation
La variable globale utilisée n'est qu'une référence Si sa valeur n'est pas modifiée dans la fonction, il n'est pas nécessaire d'ajouter le mot clé global. Par exemple :
#! /usr/bin/python a = 1 b = [2, 3] def func(): if a == 1: print("a: %d" %a) for i in range(4): if i in b: print("%d in list b" %i) else: print("%d not in list b" %i) if __name__ == '__main__': func()
Résultat de sortie :
On peut voir que les listes et les variables peuvent être citées directement.
2. Modifier les variables globales utilisées par
Si elles doivent être modifiées dans la fonction, cela entraînera des problèmes d'ambiguïté, tels que :
#! /usr/bin/python a = 1 b = [2, 3] def func(): a = 2 print "in func a:", a b[0] = 1 print "in func b:", b if __name__ == '__main__': print "before func a:", a print "before func b:", b func() print "after func a:", a print "after func b:", b.
résultat de sortie :
On peut voir que pour la variable a, "a = 2" dans la fonction func, car l'existence peut signifier référencer la variable globale a, ou créer one L'ambiguïté des nouvelles variables locales, donc python spécifie par défaut de créer une nouvelle variable locale pour éliminer cette ambiguïté, mais pour la liste b, "b[0] = 1" n'a pas cette ambiguïté.
Par conséquent, la variable globale est modifiée directement, mais si elle est changée en "b = [3, 4]", alors b deviendra également une variable locale. En particulier, lorsque l'instruction "if a == 1:" est ajoutée avant a = 2 dans func, le script ne s'exécute pas correctement car cette instruction introduit une variable globale, ce qui empêche l'instruction "a = 1" de créer une variable. avec le même nom.
Par conséquent, vous devez modifier la variable globale a. Vous pouvez ajouter l'instruction globale a avant "a = 2", telle que :
#! /usr/bin/python a = 1 b = [2, 3] def func(): global a a = 2 print "in func a:", a b[0] = 1 print "in func b:", b if __name__ == '__main__': print "before func a:", a print "before func b:", b func() print "after func a:", a print "after func b:", b
Résultat de sortie :
Conclusion : Lors du référencement de variables globales, une déclaration globale n'est pas requise. Pour modifier une variable globale, une déclaration globale est requise En particulier, si vous modifiez uniquement les valeurs des éléments dans les listes. , dictionnaires, etc., vous pouvez utiliser directement des variables globales sans avoir besoin d'une déclaration globale.
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!