Python の非ローカルおよびグローバル キーワード解析手順

高洛峰
リリース: 2017-03-12 10:49:22
オリジナル
2316 人が閲覧しました

nonlocal

まず第一に、nonlocal キーワードがクロージャ内で 定義されていることを明確にする必要があります。次のコードを見てください:

x = 0
def outer():
    x = 1
    def inner():
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)
ログイン後にコピー

result

# inner: 2
# outer: 1
# global: 0
ログイン後にコピー

次に、nonlocal キーワードをクロージャに追加して宣言します:

x = 0
def outer():
    x = 1
    def inner():
        nonlocal x
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)
ログイン後にコピー

result

# inner: 2
# outer: 2
# global: 0
ログイン後にコピー

違いがわかりますか?これは、内部に関数がネストされた 関数です。非ローカルを使用すると、変数が入れ子関数 inner() 内で有効であるだけでなく、大きな関数全体でも有効であることが宣言されます。
global

同じように、例を見てください:

x = 0
def outer():
    x = 1
    def inner():
        global x
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)
ログイン後にコピー

結果

# inner: 2
# outer: 1
# global: 2
ログイン後にコピー

global は、関数クラスの変数ではなく、環境全体の変数に作用します。

以上がPython の非ローカルおよびグローバル キーワード解析手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート