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

发布于 2021-02-02 23:14:33

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之前,如何知道该属性是否存在?

关注者
0
被浏览
81
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    尝试hasattr()

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

    编辑:请参阅下面的zweiterlinde的答案,他为寻求宽恕提供了很好的建议!一个非常pythonic的方法!

    python中的一般做法是,如果大多数情况下该属性很可能存在,则只需对其进行调用,然后让该异常传播,或者使用try / except块将其捕获。这可能会比快hasattr。如果该属性在大多数时间可能不存在,或者你不确定,则使用该属性可能hasattr比重复陷入异常块要快。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看