Maison > développement back-end > Tutoriel Python > Instructions d'analyse de mots clés Python non locaux et globaux

Instructions d'analyse de mots clés Python non locaux et globaux

高洛峰
Libérer: 2017-03-12 10:49:22
original
2345 Les gens l'ont consulté

nonlocal

Tout d'abord, il doit être clair que le mot-clé nonlocal est défini à l'intérieur de la fermeture. Veuillez regarder le code suivant :

x = 0
def outer():
    x = 1
    def inner():
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)
Copier après la connexion

Résultat

# inner: 2
# outer: 1
# global: 0
Copier après la connexion

Maintenant, ajoutez le mot-clé nonlocal à la fermeture pour déclarer :

x = 0
def outer():
    x = 1
    def inner():
        nonlocal x
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)
Copier après la connexion

Résultat

# inner: 2
# outer: 2
# global: 0
Copier après la connexion

Vous voyez la différence ? Il s'agit d'une fonction avec une fonction imbriquée à l'intérieur. Lorsque nonlocal est utilisé, il est déclaré que la variable n'est pas seulement valide dans la fonction imbriquée inner(), mais est valide dans l'ensemble de la grande fonction.

global

Toujours pareil, regardons un exemple :

x = 0
def outer():
    x = 1
    def inner():
        global x
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)
Copier après la connexion
Le résultat

# inner: 2
# outer: 1
# global: 2
Copier après la connexion
global est pour l'ensemble de l'environnement Agit sur les variables ci-dessous, pas sur les variables de la classe de fonction.

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!

É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