在 Python 中,最简洁的说法是:“如果存在 dict['foo']
,请给我,如果不存在,请给我这个其他值 bar
”?如果我使用的是对象而不是字典,我会使用 getattr
:
getattr(obj, 'foo', bar)
但是如果我尝试使用字典来代替,这会引发一个关键错误(我发现不幸的区别来自 JavaScript/CoffeeScript)。同样,在 JavaScript/CoffeeScript 中我只写
dict['foo'] || bar
但是,这又会产生 KeyError。该怎么办?请简洁!
最佳答案
dict.get(key, default)
如果输入dict,则返回dict[key]
,否则返回默认值。
注意 default
的默认值是 None
所以如果你说 dict.get(key)
并且 key 不在 dict 中那么这个只会返回 None
而不是像使用 []
键访问符号时那样引发 KeyError
。
关于字典的Python getattr等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3089186/