如何确定对象是否具有某些属性?例如:
>>> a = SomeClass()
>>> a.property
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'property'
在使用之前如何判断 a
是否具有属性 property
?
原文由 Lucas Gabriel Sánchez 发布,翻译遵循 CC BY-SA 4.0 许可协议
试试
hasattr()
:请参阅下面 的 zweiterlinde 的回答,他提供了关于请求宽恕的好建议!一个非常pythonic的方法!
python 中的一般做法是,如果该属性可能大部分时间都存在,只需调用它并让异常传播,或者使用 try/except 块捕获它。这可能比
hasattr
更快。如果该属性可能大部分时间都不存在,或者您不确定,使用hasattr
可能比反复陷入异常块更快。