为什么KeyError
错误消息的字符串表示形式要多加引号?所有其他内置异常只是直接返回错误消息字符串。
例如,下面的代码:
print str(LookupError("foo"))
print str(KeyError("foo"))
产生以下输出:
foo
'foo'
我已经尝试过使用其他内置异常(IndexError
、RuntimeError
、Exception
等)的样本,它们都返回不带引号的异常消息。
help(KeyError)
表示__str__(...)
是在 中定义的KeyError
,而不是在基类LookupError
中定义的。BaseException
这解释了行为有何不同,但没有解释为什么 __str__(...)
在KeyError
. 关于内置异常的 Python 文档没有说明这种差异。
针对 Python 2.6.6 测试