ホームページ  >  記事  >  バックエンド開発  >  Python の非ローカルおよびグローバル キーワード解析手順

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

高洛峰
高洛峰オリジナル
2017-03-12 10:49:222315ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。