如果我有字典dict
并且我想检查dict['key']
我可以在try
块(bleh!)中执行此操作,或使用get()
方法,False
作为默认值。
我想为object.attribute
做同样的事情。也就是说,如果没有设置,我已经有了返回False
的对象,但那会给我带来错误,如
AttributeError:'bool'对象没有属性'attribute'
答案 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')