在Python中检查属性的替代方法是什么?
a = SomeClass()
if hasattr(a, 'property'):
a.property
这就是检查一个属性是否存在的唯一方法吗?有没有其他方法可以做到同样的事情?
4 个回答
1
你也可以使用:
if 'property' in a.__dict__:
a.property
8
你可以直接使用这个属性,如果它不存在的话,就捕捉到一个叫AttributeError
的错误。不过,使用hasattr
这个方法也是一个不错的选择。
捕捉错误可能会有一个问题,就是你不能很清楚地区分这个属性是根本不存在,还是它存在但在调用的时候有其他代码运行,导致出现AttributeError
(可能是代码里的一个bug)。
你可能还想看看这些相关的问题,以获取更多关于这个话题的信息:
6
你可以试着去访问它,如果它不存在的话,就捕捉到一个叫做AttributeError
的错误。
try:
a.foo
except AttributeError:
...