python globals()
函数用于以字典的形式返回全局作用域的全部变量。它是python的内置函数。
语法
语法如下:globals()
参数
没有参数
返回值
返回全局作用域中的key,value字典。
程序示例
#!/usr/bin/python
# coding=utf-8
# 定义add()函数
i=1
j=2
def add(a, b):
sum = a+b
print(locals()) #没有打印i和j
print(globals()) #全局作用域 有i和j
return sum
c = add(2, 3)
print(c)
print(globals())
程序运行结果:
{'sum': 5, 'b': 3, 'a': 2}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fd390fc8c18>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/home/testglobals.py', '__cached__': None, 'i': 1, 'j': 2, 'add': <function add at 0x7fd390ffae18>}
5
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fd390fc8c18>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/home/testglobals.py', '__cached__': None, 'i': 1, 'j': 2, 'add': <function add at 0x7fd390ffae18>, 'c': 5}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fd390fc8c18>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/home/testglobals.py', '__cached__': None, 'i': 1, 'j': 2, 'add': <function add at 0x7fd390ffae18>}
5
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fd390fc8c18>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/home/testglobals.py', '__cached__': None, 'i': 1, 'j': 2, 'add': <function add at 0x7fd390ffae18>, 'c': 5}
注意第一次打印globals()和第二次globals()的区别,第二次打印多了一个c变量,这是因为python是脚本语言,第一次执行globals()函数时,还没有c变量。