2016-12-27 23 views
1

我最近注意到一些奇怪的东西。我输入类似为什么某些内置函数的语法错误消息不同?

exec code 

我显然得到了一个错误。有趣的是错误描述 - SyntaxError: Missing parentheses in call to 'exec'。我还没有发现任何其他功能可以给出类似的细节。如果我有例如

eval code 

我得到SyntaxError: invalid syntax。所有用户定义的函数和我发现的所有内置函数, G。 min,filter,表现相同。

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

回答

1

由于exec code是在Python 2有效的语法,但没有在Python 3,该错误消息是更详细的比一般SyntaxError,因为它是(并且是)非常流行的(当然,如流行的exec使用)时一个是从Python 2转换到Python 3.

在Python 3中尝试使用print string时会出现确切错误(只要string已定义)。

+0

哦,我没有想到这一点。我甚至不知道'exec'是Python 2中的关键字... –

相关问题