使用 locals() 可查看函数内局部作用域的变量字典,如 my_function 中输出 {'a': 1, 'b': 'hello'};2. globals() 返回模块级全局命名空间,包含变量、函数和导入模块等;3. dir() 不传参时列出当前作用域名称,适合交互环境浏览,但函数中建议用 locals() 获取局部变量。

在 Python 中,查看当前作用域中的对象可以通过内置函数 locals() 和 globals() 实现,具体使用方式取决于你想查看的作用域类型。
查看局部作用域对象:locals()
在函数或方法内部,调用 locals() 可以返回一个字典,包含当前局部作用域中所有变量和它们的值。例如:
def my_function():
a = 1
b = 'hello'
print(locals())
my_function()
输出: {'a': 1, 'b': 'hello'}
这个方法适合调试时快速了解函数内定义了哪些变量。
立即学习“Python免费学习笔记(深入)”;
查看全局作用域对象:globals()
使用 globals() 可以获取当前模块级别的全局变量字典,包括导入的模块、定义的函数、类和变量等。例如:
a = 10 b = [1, 2, 3]print(globals().keys()) # 查看所有全局名称
输出包含: 'name', 'file', 'a', 'b' 等
在模块顶层或函数内部都可以调用 globals(),它反映的是整个模块的命名空间。
动态检查当前可用名称:dir()
如果不传参数调用 dir(),它会尝试返回当前作用域中的名字列表。在交互环境中效果最明显。例如在 REPL 中:
>>> x = 1 >>> y = 'test' >>> dir() # 输出包含: [..., 'x', 'y']
在函数中 dir() 不会自动列出局部变量,建议优先使用 locals() 获取局部信息。
基本上就这些常用方法。根据场景选择 locals() 看函数内部,globals() 看模块全局,dir() 辅助浏览名字。不复杂但容易忽略细节。











