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!