locals与global函数
使用locals与globals函数
Python 提供了 locals 和 globals 两个内置函数,可以用来获取当前作用域所有的变量。
locals函数
locals函数可以获取当前作用域所有的变量。
- 在全局空间(函数外)调用
locals,获取的是调用locals之前所有的全局变量。 - 在局部空间(函数内)调用
locals,获取的是调用locals之前所有的局部变量。
a = 1
b = 2
def func():
a1 = 1
b2 = 2
res = locals()
c3 = 3
print(res) # This will print {'a1': 1, 'b2': 2}
d4 = 4
c = 3
func()
d = 4
globals函数
globals函数可以获取全局空间的所有全局变量。
- 在全局空间(函数外)调用
globals,获取的是调用globals之前所有的全局变量。 - 在局部空间(函数内)调用
globals,获取的是调用globals之前所有的全局变量。
a = 1
b = 2
def func():
a1 = 1
b2 = 2
res = globals()
c3 = 3
print(res) # This will print all global variables
d4 = 4
c = 3
func()
d = 4
使用globals创建全局变量
globals返回的是全局变量的字典,我们可以通过修改这个字典来创建全局变量。
dic = globals()
dic["wangwen"] = "18岁"
print(wangwen) # This will print '18岁'
我们也可以使用globals来批量创建全局变量:
def func():
dic = globals()
for i in range(1, 5):
dic[ "a%d" % (i) ] = i # This will create global variables a1, a2, a3, a4
func()
print(a1, a2, a3, a4) # This will print 1, 2, 3, 4

浙公网安备 33010602011771号