企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Python `locals()`函数 > 原文: [https://thepythonguru.com/python-builtin-functions/locals/](https://thepythonguru.com/python-builtin-functions/locals/) * * * 于 2020 年 1 月 7 日更新 * * * `locals()`函数返回一个字典,其中包含在本地名称空间中定义的变量。 在全局名称空间中调用`locals()`与调用[`globals()`](/python-builtin-functions/globals/)相同,并返回代表模块全局名称空间的字典。 其语法如下: ```py locals() -> dictionary containg local scope variables ``` 这是一个例子: ```py #!/usr/bin/python3 from pprint import pprint a = 10 b = 20 def foo(): x = 30 # x and y are local variables y = 40 print("locals() = {0}".format(locals())) pprint(locals()) # same as calling globals() print('*' * 80) print("locals() == globals()? ", locals() == globals()) print('*' * 80) foo() ``` **预期输出**: ```py {'__builtins__': <module 'builtins' (built-in)>, '__cached__': None, '__doc__': None, '__file__': 'module1.py', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fa18790a828>, '__name__': '__main__', '__package__': None, '__spec__': None, 'a': 10, 'b': 20, 'foo': <function foo at 0x7fa1878752f0>, 'pprint': <function pprint at 0x7fa1878756a8>} ******************************************************************************** locals() == globals()? True ******************************************************************************** locals() = {'y': 40, 'x': 30} ``` 试试看: ```py from pprint import pprint a = 10 b = 20 def foo(): x = 30 # x and y are local variables y = 40 print("locals() = {0}".format(locals())) pprint(locals()) # same as calling globals() print('*' * 80) print("locals() == globals()? ", locals() == globals()) print('*' * 80) foo() ``` * * * * * *