Explication détaillée de l'analyse des exemples d'utilisation de la portée Python

高洛峰
Libérer: 2017-03-07 15:53:58
original
1189 Les gens l'ont consulté

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 :

<.>

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 :

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 :

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 :

1
2
3
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 !

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal