Python 08関数LEGBルール
LEGBルール
コンセプト
変数または参照変数の値に値をバインドするための優先度.
バインド(binding):特定の値を指定するプロセス
LEGBシーケンス
まず場所を探して↓
1.Local:関数
2.Enclosed function locals:内部関数から外部関数までの範囲(ネストされた関数の場合のみ)
3.グローバル:関数外、すなわちモジュール範囲
4.Built-in:open、rangeなどPython内蔵関数
例の理解
変数参照1)Local child func関数内はローカル領域であり、変数 が最初に検索される.
変数参照2)Enclosed function localsの第1のローカル領域は、 を参照することができるaを有しない.
2番目のEnclosed function localsではa=10
変数リファレンス3)グローバル最初の地域と2番目のEnclosed関数この地域にはa値がないので、3番目の地域Global,a=30出力 をチェックする.
コンセプト
変数または参照変数の値に値をバインドするための優先度.
バインド(binding):特定の値を指定するプロセス
LEGBシーケンス
まず場所を探して↓
1.Local:関数
2.Enclosed function locals:内部関数から外部関数までの範囲(ネストされた関数の場合のみ)
3.グローバル:関数外、すなわちモジュール範囲
4.Built-in:open、rangeなどPython内蔵関数
例の理解
変数参照1)Local
a = 10
def child_func():
a = 20
return a
print(child_func())
# 20
変数参照2)Enclosed function locals
def parent_func():
a = 10
def child_func():
return a
return child_func()
print(parent_func())
# 10
2番目のEnclosed function localsではa=10
変数リファレンス3)グローバル
a = 30
def parent_func():
def child_func():
return a
return child_func()
print(parent_func())
# 30
Reference
この問題について(Python 08関数LEGBルール), 我々は、より多くの情報をここで見つけました https://velog.io/@maxkmh/Python-08-LEGB-규칙テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol