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

Ste*_*rdi 15 python variables global

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

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

global a,b,c,d,e,f,g......
a=1
b=2
c=3
d=4
.....
Run Code Online (Sandbox Code Playgroud)

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

增加一些清晰度.

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

var a = 1
  , b = 2
  , c = 3
  , d = 4
  , e = 5;
Run Code Online (Sandbox Code Playgroud)

小智 11

您可以解压缩变量:

global x, y, z
x, y, z = 4, 5, 6
Run Code Online (Sandbox Code Playgroud)


blu*_*ote 5

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

globals()['myvariable'] = 5
print(myvariable) # returns 5
Run Code Online (Sandbox Code Playgroud)

对所有变量重复此操作。

但是,你绝对不应该这样做

  • 他如何在运行时使用“global”来定义来自用户输入的未知名称和值的变量? (3认同)

qui*_*qui 5

好吧,我是新来的我,这对我来说也是个大问题,我认为这与问题的措辞有关(我在谷歌搜索时用相同的措辞来表达,无法找到答案是与我尝试做的事情有关。拜托,如果有理由我不应该这样做,请有人纠正我,但是...

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

class globalBS():
    bsA = "F"
    bsB = "U"
Run Code Online (Sandbox Code Playgroud)

现在您可以通过引用它们来在其他任何函数中调用它们,对其进行更改等:

print(globalBS.bsA)
Run Code Online (Sandbox Code Playgroud)

将在该模块上的任何功能中打印“ F”。原因是python将类视为模块,因此这对于设置全局变量列表非常有效-例如,当尝试使用我当前正在使用的多个选项创建接口时,无需复制和粘贴每个函数中都有大量的全局变量。我只想让类名尽可能短-也许一个或两个字符而不是整个单词。

希望有帮助!