python:创建一个接收全局变量作为参数的函数,并测试它是否已定义

时间:2011-11-28 11:24:06

标签: python function global-variables try-catch

我有以下问题: 在Python模块中,我有一些全局变量,而不是通常的尝试 - 除了它们中的每一个,我想测试它们是否使用一个通用函数定义。 我想到了这个:

def isDefined(variable):    
    try:
        variable
        return True        
    except NameError as error:        
        return False

但它不起作用。 有谁知道怎么做? 谢谢!

1 个答案:

答案 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