为什么字符串表示为KeyError错误消息添加额外的引号?所有其他内置异常只是直接返回错误消息字符串.
例如,以下代码:
print str(LookupError("foo"))
print str(KeyError("foo"))
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
foo
'foo'
Run Code Online (Sandbox Code Playgroud)
我曾与其他内置异常的采样(试过这个IndexError,RuntimeError,Exception等),他们都没有引号返回异常消息.
help(KeyError)表示它__str__(...)定义于KeyError,而不是LookupError使用BaseException基类中定义的那个.这解释了行为是如何不同的,但没有解释为什么 __str__(...)被覆盖KeyError.关于内置异常的Python文档并没有说明这种差异.
针对Python 2.6.6进行了测试