看看这个:
>>> eval("assert(True)")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
assert(True)
^
SyntaxError: invalid syntax
评估像这样的其他功能可以正常工作:
>>> eval("str(5)")
'5'
那为什么evaling断言失败?
答案 0 :(得分:6)
eval
用于表达式。 assert
是一个声明。你似乎认为它是一个函数but it's not。
如果您出于某种原因,可以exec
断言。
this = silly = []
exec('assert this is silly')