Maison >développement back-end >Tutoriel Python >Comment accéder aux variables non locales dans les fermetures en Python 2.x ?
Accès aux variables non locales dans les fermetures dans Python 2.x
Dans Python 2.x, le mot-clé nonlocal, utilisé pour accéder et relier non local variables dans les fermetures, n'est pas disponible. Cependant, les fonctions internes peuvent toujours lire des variables non locales, bien qu'avec des limitations.
Pour contourner l'absence de mot-clé non local, on peut utiliser un dictionnaire pour stocker les données. Les fonctions internes peuvent alors accéder et modifier les objets stockés dans le dictionnaire, même si elles ne peuvent pas directement relier elles-mêmes les variables non locales.
Considérons l'exemple suivant :
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
Ici, la fonction externe crée un dictionnaire 'd' et lui attribue une valeur pour 'y'. La fonction interne peut accéder et incrémenter « y » stocké dans le dictionnaire. Le résultat est que chaque invocation de 'f()' renvoie une valeur incrémentée, démontrant que les fonctions internes peuvent modifier indirectement les objets non locaux.
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!