一尘不染

如何知道一个对象是否在 Python 中有一个属性

javascript

Python中有没有办法确定对象是否具有某些属性?例如:

>>> a = SomeClass()
>>> a.someProperty = value
>>> a.property
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'property'

在使用之前如何判断是否a具有该属性?property


阅读 152

收藏
2022-02-11

共1个答案

一尘不染

尝试hasattr()

if hasattr(a, 'property'):
    a.property

他提供了关于请求宽恕的好建议!一个非常pythonic的方法!

python 中的一般做法是,如果该属性可能大部分时间都存在,只需调用它并让异常传播,或者使用 try/except 块捕获它。这可能会比hasattr. 如果该属性可能大部分时间都不存在,或者您不确定,那么使用hasattr可能比反复陷入异常块更快。

2022-02-11