为什么eval('pass')是一个SyntaxError?

Nic*_*k T 3 python eval

我试图暂时将我传递给我的字符串无效eval(我没有删除它,因为保留顺序对于我的hacky配置文件脚本非常重要),并且有点恼火,当我把'pass'它丢弃在我身上时,同样使用空字符串或一些等效的do-nothing语句.

>>> eval('pass')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    pass
       ^
SyntaxError: unexpected EOF while parsing
Run Code Online (Sandbox Code Playgroud)

我最终只是喂它None,但为什么它是语法错误?"意外的EOF"困扰着我; 字符串是一个完整的声明in-of-of-yourself.难道eval不能容忍关键字?

nic*_*kie 9

引用eval的文档:"表达式参数被解析并作为Python表达式进行求值".然后,pass是一个陈述,而不是一个表达.