python:创建一个接收全局变量作为参数并测试其是否定义的函数
我遇到了一个问题:在我的Python模块里,有几个全局变量。我想用一个通用的函数来检查这些变量是否被定义,而不是对每一个变量都用常规的try - except方法。我想到了这个方法:
def isDefined(variable):
try:
variable
return True
except NameError as error:
return False
但是这个方法不管用。有没有人知道怎么做呢?谢谢!
1 个回答
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