_荟桐_ 发表于 2020-4-24 18:19:57

怎么批量 global 一堆变量

本帖最后由 _荟桐_ 于 2020-4-24 18:22 编辑

在一个函数里批量创建了一堆变量,代码:

def test():
    for i in range(10):
      exec('test_' + str(i) + '=' + str(i))
怎样把他们在全都global了{:10_266:}
不是 global test_1,test_2 这样的
或者用一个 不用 'globa' 就能在函数外访问变量的方法就行 ^_^

永恒的蓝色梦想 发表于 2020-4-24 18:31:29

为什么不是 global test_1,test_2 这样的

永恒的蓝色梦想 发表于 2020-4-24 18:35:55

def test():
    for i in range(10):
      exec(f'global test_{i}\ntest_{i}={i}')

_荟桐_ 发表于 2020-4-24 18:38:20

永恒的蓝色梦想 发表于 2020-4-24 18:31
为什么

可能有 n 个创建的变量(n是一个不确定的正整数)l
如果直接global test_1,test_2,test_3,......
就很难完成

永恒的蓝色梦想 发表于 2020-4-24 18:41:00

_荟桐_ 发表于 2020-4-24 18:38
可能有 n 个创建的变量(n是一个不确定的正整数)l
如果直接global test_1,test_2,test_3,......
就很 ...

调用的时候传个全局变量字典>>> def func(vars):
        vars.update({'a':6,"b":7,"c":8,"fa":9})

       
>>> fa
Traceback (most recent call last):
File "<pyshell#46>", line 1, in <module>
    fa
NameError: name 'fa' is not defined
>>> func(locals())
>>> fa
9

永恒的蓝色梦想 发表于 2020-4-24 18:46:43

满意请选最佳{:10_297:}

_荟桐_ 发表于 2020-4-24 18:54:42

永恒的蓝色梦想 发表于 2020-4-24 18:41
调用的时候传个全局变量字典

真 · 大佬
两个方法......
页: [1]
查看完整版本: 怎么批量 global 一堆变量