Cet article analyse l'utilisation de la portée Python avec des exemples. Partagez-le avec tout le monde pour référence, comme suit :
Chaque langage de programmation a le concept de portée variable, et Python ne fait pas exception. Ce qui suit est une démonstration de code de la portée Python :
<.>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | def scope_test():
def do_local():
spam = "local spam"
def do_nonlocal():
nonlocal spam
spam = "nonlocal spam"
def do_global():
global spam
spam = "global spam"
spam = "test spam"
do_local()
print ( "After local assignment:" , spam)
do_nonlocal()
print ( "After nonlocal assignment:" , spam)
do_global()
print ( "After global assignment:" , spam)
scope_test()
print ( "In global scope:" , spam)
|
Copier après la connexion
Résultat de sortie du programme :
1 2 3 4 | After local assignment: test spam
After nonlocal assignment: nonlocal spam
After global assignment: nonlocal spam
In global scope: global spam
|
Copier après la connexion
Remarque : la déclaration d'affectation locale est pas possible Modifiez la liaison anti-spam de scope_test. L'instruction d'affectation non locale modifie la liaison anti-spam de scope_test, et l'instruction d'affectation globale modifie la liaison anti-spam au niveau du module.
Parmi eux, nonlocal est un nouveau mot-clé dans Python 3.
Vous pouvez également voir que le spam n'est pas pré-lié avant la déclaration d'affectation globale.
Résumé :
Lorsque vous rencontrez la situation d'accéder à des variables globales dans le programme et que vous souhaitez modifier la valeur de la variable globale, vous pouvez utiliser : mot-clé global, déclarer cette variable dans la fonction Est une variable globale
Le mot-clé nonlocal est utilisé pour utiliser des variables externes (non globales) dans des fonctions ou d'autres portées.
Le mot-clé global est facile à comprendre, et il en va généralement de même pour les autres langues. Voici un autre exemple non local :
1 2 3 4 5 6 7 8 9 10 11 12 | def make_counter():
count = 0
def counter():
nonlocal count
count += 1
return count
return counter
def make_counter_test():
mc = make_counter()
print (mc())
print (mc())
print (mc())
|
Copier après la connexion
Résultats en cours d'exécution :
Copier après la connexion
Pour des explications plus détaillées sur les exemples d'utilisation de la portée Python et les articles connexes, veuillez prêter attention au site Web PHP chinois !