Maison >développement back-end >Tutoriel Python >Comment puis-je accéder aux variables non locales dans Python 2.x ?

Comment puis-je accéder aux variables non locales dans Python 2.x ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-22 08:37:03250parcourir

How Can I Access Nonlocal Variables in Python 2.x?

Comprendre le mot-clé nonlocal dans Python 2.x

Dans les versions Python antérieures à 3.0, le mot-clé nonlocal n'est pas disponible. Cependant, cela ne signifie pas que vous ne pouvez pas accéder aux variables non locales dans les fermetures.

Lecture des variables non locales

Dans Python 2.x, les fonctions internes peuvent toujours lire des variables non locales. variables, mais ils ne peuvent pas les relier. Cela signifie que vous pouvez accéder à la valeur de la variable mais pas la modifier.

Contourner la limitation

Pour surmonter cette limitation, vous pouvez utiliser une solution de contournement à l'aide d'un dictionnaire. Stockez vos données non locales dans le dictionnaire, puis les fonctions internes peuvent manipuler l'objet auquel les données font référence sans liaison.

Par exemple, considérons l'exemple de Wikipédia :

<code class="python">def outer():
    d = {'y': 0}

    def inner():
        d['y'] += 1
        return d['y']

    return inner

f = outer()
print(f(), f(), f())  # Prints 1 2 3</code>

Dans cet exemple , la fonction interne peut accéder à la variable 'y' stockée dans le dictionnaire 'd'. Bien que la variable « y » elle-même ne puisse pas être modifiée, sa valeur peut être incrémentée depuis la fonction interne.

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