我有以下问题: 在Python模块中,我有一些全局变量,而不是通常的尝试 - 除了它们中的每一个,我想测试它们是否使用一个通用函数定义。 我想到了这个:
def isDefined(variable):
try:
variable
return True
except NameError as error:
return False
但它不起作用。 有谁知道怎么做? 谢谢!
答案 0 :(得分:4)
当然你必须将你的变量作为一个字符串传递 - 否则它将永远 引发NameError。
python中内置的globals
返回模块字典 -
全局变量存储在其中。
def is_defined(variable):
return variable in globals()
tomato = 42
is_defined ("tomato")
(如果由于某种原因,您认为您不能将变量名称作为字符串,请添加更多上下文信息,以便我可以相应地调整答案。)
使用默认值设置全局变量:
def set_var(variable, value=0):
globals()[variable] = value