Python 3.6 与 3.5 字符串连接的 TypeError 消息

Python 3.6 vs 3.5 TypeError message on string concatenation

'Hello ' + 1 在 Python 3.5 和 3.6 上没有 return 相同的错误消息:

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

这只是一些涉及字符串对象的代码清理。它还在使用不兼容的对象时对错误消息进行了一些更改,使它们有点 "more informative".

如果您有兴趣,请参阅:Issue 26057 - Avoid nonneeded use of PyUnicode_FromObject() 引入了此更改。

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

编辑: 我创建了 Issue 29116 - Make str and bytes error messages on concatenation conform with other sequences 来解决这个特定的消息,同时也解决了字节类型的错误消息当我们对他们做傻事时,他们的反应也同样冗长:

>>> b'' + ''
TypeError: can't concat bytes to str