Python 2.x で非ローカル変数にアクセスするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-22 08:37:03
オリジナル
157 人が閲覧しました

How Can I Access Nonlocal Variables in 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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!