ホームページ >バックエンド開発 >Python チュートリアル >Python 2.x で非ローカル変数にアクセスするにはどうすればよいですか?
Python 2.x の非ローカル キーワードについて
Python 3.0 より前のバージョンでは、非ローカル キーワードは使用できません。ただし、これはクロージャ内の非ローカル変数にアクセスできないという意味ではありません。
非ローカル変数の読み取り
Python 2.x では、内部関数は引き続き非ローカルを読み取ることができます。変数を再バインドすることはできません。これは、変数の値にはアクセスできますが、変更はできないことを意味します。
制限の回避
この制限を克服するには、辞書を使用した回避策を採用できます。非ローカル データをディクショナリ内に保存すると、内部関数は再バインドせずにデータが参照するオブジェクトを操作できるようになります。
たとえば、Wikipedia の例を考えてみましょう。
<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>
この例では、内部関数は、「d」辞書に格納されている「y」変数にアクセスできます。 「y」変数自体は変更できませんが、その値は内部関数内からインクリメントできます。
以上がPython 2.x で非ローカル変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。