a = SomeClass()
if hasattr(a, 'property'):
a.property
这是检查是否有房产的唯一方法吗?有没有其他方法可以做同样的事情?
答案 0 :(得分:8)
您可以使用该属性并捕获AttributeError
异常(如果它不存在)。但使用hasattr
也是一种合理的方法。
捕获异常的一个潜在问题是,您无法轻易区分不存在的属性,并且它已经存在,但是当您调用它时,某些代码会运行并且 代码会引发{{ 1}}(可能是由于代码中的错误)。
您可能还想查看这些相关问题,以获取有关此主题的更多信息:
答案 1 :(得分:5)
好吧,您可以尝试访问它并捕获AttributeError
以防它不存在。
try:
a.foo
except AttributeError:
...
答案 2 :(得分:1)
你也可以使用:
if 'property' in a.__dict__:
a.property