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

一种类似于get()的用于检查Python属性的方法

益和雅
2023-03-14
问题内容

如果我有字典,dict并且想检查一下,则dict['key']可以将其作为一个try块(非常好!),也可以使用get()方法False作为默认值。

我想为做同样的事情object.attribute。也就是说,False如果尚未设置对象,我已经有要返回的对象,但这给了我类似的错误

AttributeError:’bool’对象没有属性’attribute’


问题答案:

更直接的类似物dict.get(key, default)hasattrgetattr

val = getattr(obj, 'attr_to_check', default_value)

(在哪里default_value是可选的,如果未找到,则在no属性上引发异常。)

例如,您将通过False



 类似资料:
  • 问题内容: 给定以下格式( .properties 或 .ini ): 对于 Java ,提供了Properties类,该类提供了用于解析上述格式或与其进行交互的功能。 python 的 标准 库(2.x)中有类似的东西吗? 如果没有,我还有什么其他选择? 问题答案: 对于.ini文件,有一个ConfigParser模块,它提供与.ini文件兼容的格式。 无论如何,没有任何可用于解析完整的.pro

  • 我有几个共享一些字段。我有一个接受这些元组的函数,并保证只与共享字段交互。我想在mypy中键入检查此类代码。 代码的一个示例是: 当我对这段代码运行mypy时,我得到了一个可预见的错误: mypy_example.py:20:错误:“DoSomething”的参数1具有不兼容的类型“base extended”;预期的“基数” 有没有办法构造我的代码并保持我的py类型检查?我无法从< code>B

  • 问题内容: 我需要一种检查类的方法,以便可以安全地标识哪些属性是用户定义的类属性。问题是,像DIR功能(),inspect.getmembers()和朋友返回所有类的属性包括预定义的像:,,,。这当然是可以理解的,并且可以说我可以列出一个要忽略的命名成员列表,但是不幸的是,这些预定义属性必定会随着不同版本的Python发生变化,因此使我的项目在python项目中容易发生变化- 我不喜欢那样。 例:

  • 问题内容: 我有几个共享一些字段的namedtuple。我有一个接受这些元组的函数,并保证仅与共享字段进行交互。我想在mypy中对此类代码进行类型检查。 该代码的示例为: 当我在此代码上运行mypy时,我得到一个可预测的错误: mypy_example.py:20:错误:“ DoSomething”的参数1具有不兼容的类型“ BaseExtended”;预期的“基础” 有没有办法构造我的代码并保持

  • 问题内容: 类文件对象是Python中的对象,其行为类似于真实文件,例如具有read()和write method(),但实现方式不同。这是鸭打字概念的实现。 优良作法是在需要文件的任何地方都允许使用类似文件的对象,以便可以使用StringIO或Socket对象代替实际文件。因此执行这样的检查很不好: 检查对象(例如方法的参数)是否为“类文件”的最佳方法是什么? 问题答案: 除非您有特殊要求,否则

  • 问题内容: 我有一个值列表和bin边缘列表。现在,我需要检查所有值属于它们的bin。除了遍历值然后遍历bin并检查该值是否属于当前bin之外,还有没有比Python更有效的方法了,例如: 对我来说,这看起来并不漂亮。谢谢! 问题答案: 可能为时已晚,但为将来参考,numpy具有执行此操作的功能: http://docs.scipy.org/doc/numpy/reference/generated