A get() like method for checking for Python attributes(用于检查 Python 属性的类似 get() 的方法)
问题描述
如果我有一个字典 dict 并且我想检查 dict['key'] 我可以在 try 中这样做块(bleh!)或使用 get() 方法,将 False 作为默认值.
If I had a dictionary dict and I wanted to check for dict['key'] I could either do so in a try block (bleh!) or use the get() method, with False as a default value.
我想对 object.attribute 做同样的事情.也就是说,如果尚未设置,我已经有返回 False 的对象,但这会给我类似
I'd like to do the same thing for object.attribute. That is, I already have object to return False if it hasn't been set, but then that gives me errors like
AttributeError: 'bool' 对象没有属性 'attribute'
AttributeError: 'bool' object has no attribute 'attribute'
推荐答案
与 hasattr 相比,dict.get(key, default) 更直接的类比是 getattr.
A more direct analogue to dict.get(key, default) than hasattr is getattr.
val = getattr(obj, 'attr_to_check', default_value)
(其中 default_value 是可选的,如果未找到则在没有属性时引发异常.)
(Where default_value is optional, raising an exception on no attribute if not found.)
对于您的示例,您将传递 False.
For your example, you would pass False.
这篇关于用于检查 Python 属性的类似 get() 的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:用于检查 Python 属性的类似 get() 的方法
基础教程推荐
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
- Kivy 使用 opencv.调整图像大小 2022-01-01
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- 对多索引数据帧的列进行排序 2022-01-01
