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

Saq*_*Ali 1 python assert eval

看这个:

>>> eval("assert(True)")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    assert(True)
         ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

评估像这样的其他功能工作正常:

>>> eval("str(5)")
'5'
Run Code Online (Sandbox Code Playgroud)

那么为什么evaling断言失败?

use*_*ica 6

eval用于表达.assert是一份声明.你似乎认为它是一种功能,但事实并非如此.

exec如果你出于某种原因想要,你可以断言.

this = silly = []
exec('assert this is silly')
Run Code Online (Sandbox Code Playgroud)

  • @SaqibAli`assert`甚至不知道语法中的那些括号,再次因为它是一个简单的陈述.`(True)== True` (2认同)