86

如果我有一本字典dict并且我想检查dict['key']我可以在一个try块中这样做(bleh!)或使用该get()方法,False作为默认值。

我想为object.attribute. 也就是说,False如果尚未设置对象,我已经有要返回的对象,但这会给我带来如下错误

AttributeError:“布尔”对象没有属性“属性”

4

3 回答 3

135

dict.get(key, default)hasattris更直接的类比getattr

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

(wheredefault_value是可选的,如果未找到,则在没有属性时引发异常。)

对于您的示例,您将通过False.

于 2008-12-10T14:27:29.763 回答
21

你的意思是hasattr()也许?

hasattr(object, "attribute name") #Returns True or False

Python.org doc - 内置函数 - hasattr()

您也可以这样做,这有点杂乱,不适用于方法。

"attribute" in obj.__dict__
于 2008-12-10T09:59:36.297 回答
7

要检查一个键是否在字典中,您可以使用in: 'key' in dictionary

要检查对象中的属性,请使用以下hasattr()函数:hasattr(obj, 'attribute')

于 2008-12-10T10:01:28.133 回答