我试图暂时清空我传递给eval
的字符串什么都不做(我没有删除它,因为保留顺序对我的hacky配置文件脚本很重要),并且有点恼火,当我把它'pass'
放在我身上,同样用空字符串或一些等效的无用语句。
>>> eval('pass')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
pass
^
SyntaxError: unexpected EOF while parsing
我最终只是喂它None
,但为什么它是语法错误? “意外的EOF”困扰着我;字符串是一个完整的声明in-of-of-yourself。 eval
不能容忍关键字吗?
答案 0 :(得分:9)
从eval's documentation引用:“表达式参数被解析并计算为Python表达式”。然后,pass
是一个陈述,而不是表达。
答案 1 :(得分:0)
就像尼基说的那样,eval
适用于表达式,但我想补充说eval
与repr
一起使用是很好的,如此处所述,