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

高洛峰
高洛峰original
2017-03-12 10:49:222354parcourir

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)

Résultat

# inner: 2
# outer: 1
# global: 0

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)

Résultat

# inner: 2
# outer: 2
# global: 0

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)
Le résultat

# inner: 2
# outer: 1
# global: 2
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!

Déclaration:
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