英語ドキュメント:
locals()
現在のローカルシンボルテーブルを表す辞書を更新して返します。自由変数は、関数ブロックで呼び出されたときに locals() によって返されますが、クラスブロックでは返されません。 :
1. この関数は、globals 関数 (グローバル変数を返す) と同様に、現在のスコープ内のローカル変数とその値で構成される辞書を返します
>>> locals() {'__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__doc__': None, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, '__spec__': None} >>> a = 1 >>> locals() # 多了一个key为a值为1的项 {'__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, 'a': 1, '__doc__': None, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, '__spec__': None}
2. 関数内で使用できます。
>>> def f(): print('before define a ') print(locals()) #作用域内无变量 a = 1 print('after define a') print(locals()) #作用域内有一个a变量,值为1 >>> f <function f at 0x03D40588> >>> f() before define a {} after define a {'a': 1}
3. 返された辞書セットは変更できません。
りー