Python globals() 语法
globals() 是 Python 的一个内置函数,它会以字典的方式来返回当前程序的所有全局变量。
其中,全局命名空间在模块加载时创建,并贯穿整个模块的生命周期。
语法:
globals()说明:
globals() 函数不接收任何参数。
提示: globals() 函数返回当前程序的所有 “全局变量”,而 locals() 函数返回当前程序的所有 “局部变量”。
Python globals() 摘要
| 使用频率 | 中 |
|---|---|
| 官方文档 | 查看 |
Python globals() 示例
接下来,我们通过几个简单的例子来讲解一下 Python globals() 函数是如何使用的。
示例 1:globals() 基本用法
a = 10
b = 20
c = 30
print(globals())运行结果如下。
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000002E0BB0E1C10>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:\\python-test\\test.py', '__cached__': None, 'a': 10, 'b': 20, 'c': 30}分析:
字典前面的是关于当前程序的基本信息,字典末尾处就是当前程序的所有 “全局变量”。
globals()、locals() 和 vars()
与 Python 命名空间相关的内置函数有 3 个:globals()、locals()、vars(),它们之间的区别如下。
globals():返回当前命名空间的全局变量。locals():返回当前命名空间的局部变量。vars():不带参数时等价于 locals(),带参数时等价于 object.__dict__()。
示例 2:globals() vs locals() vs vars()
a = 10
b = 20
# 定义函数
def foo():
c = 30
d = 40
print(globals())
print(locals())
print(vars())
# 调用函数
foo()运行结果如下。
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000027F748EBEF0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:\\my-test\\python-test\\test.py', '__cached__': None, 'a': 10, 'b': 20, 'foo': <function foo at 0x0000027F748A8A40>}
{'c': 30, 'd': 40}
{'c': 30, 'd': 40}