字典的Python getattr等价物?

标签 python

在 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/

相关文章:

用于查找包含文本字符串的文件的 Python 脚本

python - 使用 boost::process 0.5。无法为 python.exe 重定向 stdio

python - 从文件中写入和读取列表

python - Scrapy找不到蜘蛛

Python 为列表中的所有元素添加引号?

python - socket.getaddrinfo 在一台机器上失败;正在研究另一个明显相同的项目。为什么?

python - 从 dropbox API 构建目录树

python - 如何在使用 Scikit-Learn 创建 ROC 曲线时使用预测分数

python - 我什么时候应该使用 fftshift(fft(fftshift(x))) 什么时候使用 fft(x)?

python - 如何限制同时递归调用2个函数的次数? - Python