为什么eval("断言(True)")在python中失败?

时间:2018-04-09 06:01:04

标签: python eval assert

看看这个:

>>> 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断言失败?

1 个答案:

答案 0 :(得分:6)

eval用于表达式。 assert是一个声明。你似乎认为它是一个函数but it's not

如果您出于某种原因,可以exec断言。

this = silly = []
exec('assert this is silly')