Python - 定义多个全局变量的最简单方法
Python - Easiest way to define multiple global variables
我正在尝试寻找一种从函数或 class 内部定义多个全局变量的简单方法。
显而易见的选择是执行以下操作:
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;
如果它们在概念上相关,一种选择是将它们放入字典中:
global global_dictionary
global_dictionary = {'a': 1, 'b': 2, 'c': 3}
但是正如您在问题中所评论的那样,这不是处理产生此问题的最佳方法。
globals()
内置函数引用了当前模块中的全局变量。你可以像普通字典一样使用它
globals()['myvariable'] = 5
print(myvariable) # returns 5
对所有变量重复此操作。
但是,您绝对不应该这样做
好吧,我是新人,这对我来说也是一个大问题,我认为这与问题的措辞有关(我在谷歌搜索时用同样的方式措辞,但不太清楚找到与我正在尝试做的事情相关的答案)。如果有理由我不应该这样做,请有人纠正我,但是...
设置全局变量列表的最佳方法是在该模块中为它们设置 class。
class globalBS():
bsA = "F"
bsB = "U"
现在您可以在任何其他函数中调用它们、更改它们等,方法是这样引用它们:
print(globalBS.bsA)
将在该模块的任何函数中打印 "F"。这样做的原因是 python 将 classes 视为模块,因此这对于设置全局变量列表很有效 - 例如当尝试创建具有多个选项的接口时,例如 I'我目前正在做,没有在每个函数中复制和粘贴大量的全局变量列表。我只会让 class 名称尽可能短 - 可能是一个或两个字符而不是整个单词。
希望对您有所帮助!
您可以解压变量:
global x, y, z
x, y, z = 4, 5, 6
我正在尝试寻找一种从函数或 class 内部定义多个全局变量的简单方法。
显而易见的选择是执行以下操作:
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;
如果它们在概念上相关,一种选择是将它们放入字典中:
global global_dictionary
global_dictionary = {'a': 1, 'b': 2, 'c': 3}
但是正如您在问题中所评论的那样,这不是处理产生此问题的最佳方法。
globals()
内置函数引用了当前模块中的全局变量。你可以像普通字典一样使用它
globals()['myvariable'] = 5
print(myvariable) # returns 5
对所有变量重复此操作。
但是,您绝对不应该这样做
好吧,我是新人,这对我来说也是一个大问题,我认为这与问题的措辞有关(我在谷歌搜索时用同样的方式措辞,但不太清楚找到与我正在尝试做的事情相关的答案)。如果有理由我不应该这样做,请有人纠正我,但是...
设置全局变量列表的最佳方法是在该模块中为它们设置 class。
class globalBS():
bsA = "F"
bsB = "U"
现在您可以在任何其他函数中调用它们、更改它们等,方法是这样引用它们:
print(globalBS.bsA)
将在该模块的任何函数中打印 "F"。这样做的原因是 python 将 classes 视为模块,因此这对于设置全局变量列表很有效 - 例如当尝试创建具有多个选项的接口时,例如 I'我目前正在做,没有在每个函数中复制和粘贴大量的全局变量列表。我只会让 class 名称尽可能短 - 可能是一个或两个字符而不是整个单词。
希望对您有所帮助!
您可以解压变量:
global x, y, z
x, y, z = 4, 5, 6