检查变量是否在python中定义的简单方法?

Easy way to check that a variable is defined in python?

本问题已经有最佳答案,请猛点这里访问。

是否有任何方法可以检查是否定义了具有指定名称的变量(类成员或独立变量)?例子:

1
2
3
4
if"myVar" in myObject.__dict__ : # not an easy way
  print myObject.myVar
else
  print"not defined"


紧凑的方式:

1
print myObject.myVar if hasattr(myObject, 'myVar') else 'not defined'

不过,HTW的方式更像是Python。

hasattr()x in y.__dict__不同,但是:hasattr()考虑继承的类属性,以及从__getattr__返回的动态类属性,而y.__dict__只包含y实例属性的对象。


1
2
3
4
try:
    print myObject.myVar
except NameError:
    print"not defined"


保罗是对的,如果需要的话,你做事的方式可能会有问题。但是,如果你只是做一些快速和肮脏的事情,你可能不关心习惯的PythonAnway,那么这可能会更短。

1
2
try: x
except: print"var doesn't exist"

要测试是否定义了变量myvar:

1
result = dir().count('myvar')

如果定义myvar,则结果为1,否则结果为0

这在Python版本3.1.2中很好地工作。


阅读和或使用python技巧:locals()中的"a"和