Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.6 vs 3.5类型字符串连接错误消息_Python_String_Typeerror_Python 3.5_Python 3.6 - Fatal编程技术网

Python 3.6 vs 3.5类型字符串连接错误消息

Python 3.6 vs 3.5类型字符串连接错误消息,python,string,typeerror,python-3.5,python-3.6,Python,String,Typeerror,Python 3.5,Python 3.6,“Hello”+1不会在Python 3.5和3.6上返回相同的错误消息: Python 3.5.2:TypeError:无法将'int'对象隐式转换为str Python 3.6.0:TypeError:必须是str,而不是int 这是措辞上的一个简单变化,还是背后有更微妙的东西?这只是对涉及字符串对象的代码的一些清理。当使用不兼容的对象使错误消息“更具信息性”时,它还引入了错误消息中的一些更改 请看:如果您感兴趣的话,这引入了这一变化 这里没有什么微妙之处,它仍然是非法的,而且,作者将错

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

  • Python 3.5.2:
    TypeError:无法将'int'对象隐式转换为str
  • Python 3.6.0:
    TypeError:必须是str,而不是int

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

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

请看:如果您感兴趣的话,这引入了这一变化

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

编辑:我创建此项是为了处理此特定消息,同时也处理字节类型的错误消息,这些字节类型在我们处理它们时有类似的详细响应:

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

你为什么这么问?除了TypeError,您是否有依赖于错误消息确切措辞的
处理程序?没有,我只是想知道它是否与
键入模块或键入3.6中引入的变量有关。事实上,新的错误消息更糟糕,任何正确实现
的对象都可以在这里工作,因此
“must be str”
显然是错误的。切换操作数时得到的错误消息在imo中更为清晰:
TypeError:不支持+:'int'和'str'的操作数类型。
。谢谢Jim,但正如@wim所说,新消息并不清晰。太糟糕了,做出这样的选择…@wim是的,这需要在跟踪器中提出。@AntoineDusséaux更改很简单,如果更改了,我会更新答案。