用于检查Python属性的get()方法

时间:2008-12-10 09:49:40

标签: python attributes

如果我有字典dict并且我想检查dict['key']我可以在try块(bleh!)中执行此操作,或使用get()方法,False作为默认值。

我想为object.attribute做同样的事情。也就是说,如果没有设置,我已经有了返回False的对象,但那会给我带来错误,如

  

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

3 个答案:

答案 0 :(得分:106)

dict.get(key, default)hasattr更直接的类似于getattr

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

(其中default_value是可选的,如果找不到,则在无属性上引发异常。)

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

答案 1 :(得分:17)

你的意思是hasattr()吗?

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

Python.org doc - Built in functions - hasattr()

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

"attribute" in obj.__dict__

答案 2 :(得分:7)

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

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