Python 的内置函数 globals() 是一个非常有用的工具,它返回一个表示当前全局符号表的字典。这个字典包含了当前模块中定义的所有全局变量、函数、类等对象的名称和对应值的映射关系。
详细说明
-
功能特性:
globals()返回的是一个字典对象,其中键(key)是变量名的字符串形式,值(value)是对应的变量值- 该字典会实时反映当前全局命名空间的变更
- 在模块级别调用时,会返回该模块的全局命名空间
- 在函数内部调用时,仍然返回包含该函数的模块的全局命名空间
-
典型应用场景:
- 动态访问和操作全局变量
- 调试时检查全局命名空间内容
- 实现某些元编程功能
- 框架开发中需要动态处理全局变量时
-
使用示例:
# 定义一些全局变量
x = 10
y = "hello"
def my_func():
z = 30 # 这是局部变量
print(globals()) # 仍然显示模块的全局变量
# 查看全局命名空间
print(globals())
# 输出会包含:
# {'__name__': '__main__', '__doc__': None,
# 'x': 10, 'y': 'hello', 'my_func': <function my_func at 0x...>, ...}
这个函数在需要动态处理或检查全局变量时特别有用,但应谨慎使用以避免代码变得难以理解和维护。