Python - 定义多个全局变量的最简单方法

时间:2016-12-06 10:20:51

标签: python variables global

我正在尝试寻找一种从函数或类中定义多个全局变量的简单方法。

显而易见的选择是执行以下操作:

global a,b,c,d,e,f,g......
a=1
b=2
c=3
d=4
.....

这是一个简化的例子,但基本上我需要根据特定函数的输入定义几十个全局变量。理想情况下,我想要定义全局名称和值,而不必更新值和独立定义全局名称。

增加更多清晰度。

我正在寻找相当于此(javascript)的python:

var a = 1
  , b = 2
  , c = 3
  , d = 4
  , e = 5;

4 个答案:

答案 0 :(得分:4)

好吧,我自己也是新人,这对我来说也是一个大问题,我认为这与问题的措辞有关(我在谷歌上用同样的方式表达,并且找不到一个答案与我试图做的事情有关。如果有理由我不应该这样做,请有人纠正我,但是......

设置全局变量列表的最佳方法是在该模块中为它们设置一个类。

class globalBS():
    bsA = "F"
    bsB = "U"

现在您可以通过引用它们来调用它们,更改它们等等:

print(globalBS.bsA)

会在该模块的任何函数中打印“F”。这样做的原因是python将类视为模块,因此这对于设置全局变量列表非常有用 - 例如在尝试使用多个选项(例如我正在进行的操作)创建接口时,无需复制和粘贴每个函数中巨大的全局变量列表。我只是保持班级名称尽可能短 - 可能是一两个字符而不是整个单词。

希望有所帮助!

答案 1 :(得分:4)

您可以解压缩变量:

global x, y, z
x, y, z = 4, 5, 6

答案 2 :(得分:0)

如果它们在概念上相关,则一个选项是将它们放在字典中:

global global_dictionary
global_dictionary = {'a': 1, 'b': 2, 'c': 3}

但正如你在问题中评论的那样,这不是处理产生这个问题的问题的最佳方法。

答案 3 :(得分:0)

globals()内置函数引用当前模块中的全局变量。您可以像普通字典一样使用它

globals()['myvariable'] = 5
print(myvariable) # returns 5

对所有变量重复此操作。

然而,你肯定不应该这样做