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 相同的错误消息:
- Python 3.5.2:
TypeError: Can't convert 'int' object to str implicitly
- Python 3.6.0:
TypeError: must be str, not int
是简单的措辞上的变化还是背后有更微妙的东西?
这只是一些涉及字符串对象的代码清理。它还在使用不兼容的对象时对错误消息进行了一些更改,使它们有点 "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
'Hello ' + 1
在 Python 3.5 和 3.6 上没有 return 相同的错误消息:
- Python 3.5.2:
TypeError: Can't convert 'int' object to str implicitly
- Python 3.6.0:
TypeError: must be str, not int
是简单的措辞上的变化还是背后有更微妙的东西?
这只是一些涉及字符串对象的代码清理。它还在使用不兼容的对象时对错误消息进行了一些更改,使它们有点 "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