小编pze*_*zed的帖子

为什么str(KeyError)会添加额外的引号?

为什么字符串表示为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进行了测试

python exception keyerror

13
推荐指数
1
解决办法
1126
查看次数

标签 统计

exception ×1

keyerror ×1

python ×1