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

jam*_*day 70 python attributes

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

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

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

Bri*_*ian 112

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

val = getattr(obj, 'attr_to_check', default_value)
Run Code Online (Sandbox Code Playgroud)

(在哪里default_value可选,如果没有找到,则在没有属性的情况下引发异常.)

对于你的例子,你会通过False.


Zoo*_*tor 18

你的意思hasattr()是吗?

hasattr(object, "attribute name") #Returns True or False
Run Code Online (Sandbox Code Playgroud)

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

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

"attribute" in obj.__dict__
Run Code Online (Sandbox Code Playgroud)


小智 7

要检查密钥是否在字典中,您可以使用in:'key' in dictionary.

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