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

Mary-Kate Olsen
Libérer: 2024-10-22 08:37:03
original
244 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal