この記事では、Python3 における非ローカルとグローバルの使い方と違いを紹介します (例付き)。一定の参考価値があります。困っている友人は参考にしてください。お役に立てれば幸いです。
キーワード非ローカル
Python 2.xでは、クロージャは外部関数の変数を読み取ることのみができますが、上書きすることはできません。この問題を解決するために、Python 3.x では nonlocal キーワードが導入され、クロージャ内で非ローカル変数を宣言すると、インタープリタは外部関数で変数名を見つけることができます。
注: キーワード nonlocal: は python3.X に表示されるため、python2.x では直接使用できません。
キーワード global
Python には 2 つのスコープしかありません: グローバル スコープそしてローカルスコープ。グローバル スコープは、現在のコードが配置されているモジュールのスコープを指し、ローカル スコープは、現在の関数またはメソッドのスコープを指します。ローカル スコープのコードは、外部スコープ (グローバル スコープを含む) の変数を読み取ることはできますが、変更することはできません。変更したい場合は、ここで global キーワードを使用する必要があります
例
キーワード nonlocal の機能は、キーワード global と似ています。nonlocal キーワードを使用して変更できます。ネストされた関数内 ネストされたスコープ内の変数。
2 つの例を見てください
例 1
name = 'pythontab' def func() global name name = 'pythontab.com' func() print(name)
結果:
pythontab.com
例 2
def func(): name = 'pythontab' def foo(): nonlocal name name = 'pythontab.com' foo() print(name) func()
結果:
pythontab.com
例 2 では、name の値を変更するために global キーワードが使用されていないことに注意してください。
まとめ
主な違いは次の 2 点です。
以上がPython3 における非ローカルとグローバルの使用法と違いの紹介 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。