この記事ではPython関数のスコープの検索順序をご紹介しますので、具体的な内容は以下の通りです
1 LEGBとは?
L:ローカル関数内部スコープ
E:関数内部と組み込み関数の間を囲む
G:グローバルグローバルスコープ
B:ビルドイン組み込みスコープ
2.LEGB何に使用されますか?
なぜこれを導入する必要があるのでしょうか?またはその機能は何ですか?
その理由は、Python 関数を学習するときに、すべての変数、内部変数、および内部に埋め込まれた関数など、多くの定義ドメインの問題に遭遇するからです。パイソン検索?そして、Python はどのような順序で検索するのでしょうか?順序について説明します
3. 順序とは
Pythonの関数の検索はその名の通りLEGBと呼ばれる4種類に分かれており、この順序で検索されます。
まず、ローカルで、最初に関数内を検索します
次に、囲み、次に関数の内部と埋め込み関数の間で検索します(関数内で関数を再度定義することを意味します)
次に、グローバルであり、関数を検索します全世界
最後に、組み込みスコープです
4. たとえば、
ex1
passline = 60 def func(val): if val >= passline: print('pass') else: print('failed') func(89) '''''''''''' pass [Finished in 0.2s] ''''''''''''Python関数は、最初にローカルを検索します。ローカル変数のスコープを調べると、関数内に定義がないことがわかり、この時点で Python はグローバルの検索を開始し、グローバル内のパスラインの定義を見つけて呼び出されます。
ex2
def Max(val1, val2): return max(val1, val2) print(Max(90, 100)) ''''''''' 100 [Finished in 0.1s] '''''''''Max 関数は、max() と呼ばれる別の関数を直接呼び出します (2 つの関数の大文字と小文字は異なることに注意してください)。関数は定義されていませんが、それに属しています。これは、Python 標準ライブラリに組み込まれている関数であり、直接呼び出すことができます。最後のステップはここを見つけることになります 2番目のタイプに関しては、関数内で関数が再定義された場合でも、最初にローカル関数に定義があるかどうかを検索し、その後、関数を検索します。関数の中に埋め込み関数があるのですが、このタイプにはクロージャという特殊な用語があるので、ぜひ読んでみてください。 以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。 Python 関数スコープの LEGB 順序に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。