在访问 Python 字典上的未设置属性时,抛出KeyError
而不是返回的基本原理和含义是什么?None
我知道语言设计涉及权衡,其中一些基于实际问题,而另一些则主要基于哲学。从计算机科学的角度来看,为什么 Python 是这样设计的?
一些注释来构建问题
- 我主要想知道这是否是一个实际的决定(即,它为开发人员提供了从错误中恢复的更多选择,而不仅仅是返回
None
),或者选择是否是哲学的(即,“访问未设置的属性是,在 Guido 的意见,一个例外情况”)。 - Python 的
dict.get
函数具有此功能,但文字符号似乎正在针对程序认为未设置值异常的情况进行优化。 - 值得注意的是,一些人认为异常处理很难推理,因为它涉及与主程序不同的控制流
- 如果 Python 返回
None
而不是引发异常,程序仍然可以在访问它的值之前检查键的存在,如果它确实想要以不同的方式处理 unset 和None
值。但由于我们无法访问异常编程流程,我有兴趣了解我们可能会失去什么?