11

'Hello ' + 1在 Python 3.5 和 3.6 上不会返回相同的错误消息:

  • Python 3.5.2:TypeError: Can't convert 'int' object to str implicitly
  • Python 3.6.0:TypeError: must be str, not int

是简单的措辞变化还是背后有更微妙的东西?

4

1 回答 1

6

这只是一些涉及字符串对象的代码清理。当使用不兼容的对象时,它还对错误消息进行了一些更改,以使它们“更具信息性”。

请参阅:问题 26057 -PyUnicode_FromObject()如果您有兴趣,请避免不必要地使用引入此更改的内容。

这里没有什么微妙之处,它仍然是非法的,作者将错误消息更改为他认为更清晰的内容。

编辑:我创建了问题 29116 -连接上的生成strbytes错误消息符合其他序列以解决此特定消息,同时还解决了当我们对它们进行愚蠢的事情时具有类似冗长响应的字节类型的错误消息:

>>> b'' + ''
TypeError: can't concat bytes to str
于 2016-12-29T23:39:00.977 回答