繁体   English   中英

为什么某些内置函数的语法错误消息有所不同?

[英]Why syntax error messages for some built-in functions are different?

我最近注意到了一件奇怪的事。 我输入类似

exec code

而且我显然有一个错误。 错误描述是有趣的SyntaxError: Missing parentheses in call to 'exec' 我还没有找到其他可以提供类似详细功能的函数。 如果我有例如

eval code

我得到SyntaxError: invalid syntax 我发现的所有用户定义函数和所有内置函数(例如minfilter )的行为都相同。

为什么这些错误消息不一致?

由于exec code在Python 2中是有效的语法,而在Python 3中则不是,因此此错误消息比一般的SyntaxError更详细,因为在过渡时它非常(而且非常流行,就像exec的用法一样)非常流行。从Python 2到Python 3。

尝试在Python 3中print string时,您会得到确切的错误(只要定义了string )。

由于eval是( 2.x仍然是3.x函数调用,因此存在错误差异。 另一方面, exec2.x的语句,3.x变为函数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM