我最近发现了一些奇怪的东西。我键入了类似
的内容exec code
我显然遇到了错误。有趣的是错误描述 - SyntaxError: Missing parentheses in call to 'exec'
。我还没有发现任何其他能给出类似细节的功能。如果我有例如
eval code
我得到SyntaxError: invalid syntax
。我找到的所有用户定义的函数和所有内置函数,例如: G。 min
,filter
,行为相同。
为什么这些错误消息不一致?
答案 0 :(得分:1)
由于exec code
是Python 2中的有效语法,而不是Python 3中的有效语法,因此该错误消息比一般SyntaxError
更详细,因为它非常受欢迎(嗯,很受欢迎当一个人从Python 2过渡到Python 3时,作为exec
)的用法。
在Python 3中尝试print string
时会遇到确切的错误(只要定义string
)。
答案 1 :(得分:1)
错误存在差异,因为eval
是in 2.x
),仍然是(in 3.x
)函数调用。另一方面,exec
是a statement in 2.x
和made into a function in 3.x
。