Maison >développement back-end >Tutoriel Python >Accès aux variables non locales dans Python 2.x : comment contourner les limitations ?
Accès aux variables non locales dans les fermetures dans Python 2.x
Python 2.x n'a pas le mot-clé nonlocal, ce qui soulève des questions sur l'accès aux variables non locales dans les fermetures. Les fonctions internes peuvent intrinsèquement lire des variables non locales, mais leur liaison n'est pas autorisée.
Solutions de contournement pour accéder aux variables non locales
Malgré cette limitation, vous pouvez utiliser des solutions de contournement :
Exemple d'utilisation d'un dictionnaire
Considérez l'extrait de code suivant, basé sur l'exemple de Wikipédia :
<code class="python">def outer(): data = {'y': 0} def inner(): data['y'] += 1 return data['y'] return inner f = outer() print(f(), f(), f()) # prints 1 2 3</code>
Dans cet exemple, les données du dictionnaire sont utilisées pour stocker la variable non locale y. La fonction interne peut incrémenter la valeur de y et renvoyer la valeur mise à jour sans violer la restriction relative à la reliure des variables non locales.
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!