加载中...

locals与global函数

使用localsglobals函数

Python 提供了 localsglobals 两个内置函数,可以用来获取当前作用域所有的变量。

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
posted @ 2024-03-02 17:45  江寒雨  阅读(38)  评论(0)    收藏  举报