当前位置: 首页 > 面试题库 >

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

柴飞扬
2023-03-14
问题内容

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


问题答案:

尝试hasattr()

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

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

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



 类似资料:
  • 我正在使用一个映射,并希望使用一个值对象作为映射键。。和一个列表作为值。值对象有两个属性:第一个名称、第二个名称。。我想把地图还给你。如果两个属性都与同一映射中的某个键匹配,则containsKey()为true。。 我尝试使用比较器如下 这是我正在使用的值对象 但它为我返回假...请帮助我...谢谢提前

  • 问题内容: 如何检查对象在JavaScript中是否具有特定属性? 考虑: 那是最好的方法吗? 问题答案: 我对所给出的答案感到困惑-他们中的大多数都是完全错误的。当然,您可以拥有具有未定义,空值或假值的对象属性。因此,简单地将属性检查减少到甚至更糟,将给您完全误导的结果。 这取决于您要查找的内容。如果您想知道一个对象是否物理上包含一个属性(并且它不是来自原型链的某个地方),那么您就可以这样做。所

  • 我想找到属性中的是否包含某个值。然后我想获取包含该值的条目的索引。

  • 本文向大家介绍如何知道对象是否用JavaScript密封?,包括了如何知道对象是否用JavaScript密封?的使用技巧和注意事项,需要的朋友参考一下 Object.isSealed()是用于查找对象是否在javascript中密封的方法。此方法给出布尔输出。  如果满足以下条件,则将对象密封。 1)不可扩展。 2)其属性应不可配置。 语法 参数  -Object.isSealed()将对象作为参

  • (我已经删除了上一个,所以我想你可以在编辑中找到它) 编辑 所以按照bad_coder在评论中告诉的以及他分享的链接中的大多数答案,我点击了“选项显示所有”,我得到了这个 1) 这里唯一有意义的是点击“”按钮,所以我点击了它 2) 现在我应该用路径替换突出显示的部分(换句话说,我在cmd中键入“where python”后得到的路径) 3) 这就是我发现的。那么我应该在突出显示的部分复制并粘贴哪一