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

为什么在python中eval(“assert(True)”失败?,python,eval,assert,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 那么为什么evalingassert失败了呢?eval用于表达式断言是一

看看这个:

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

那么为什么evalingassert失败了呢?

eval
用于表达式<代码>断言是一条语句。你似乎认为这是一个函数

如果出于某种原因需要,您可以执行断言

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

eval
用于表达式<代码>断言是一条语句。你似乎认为这是一个函数

如果出于某种原因需要,您可以执行断言

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

eval
解析并执行表达式,而不是任意指令。您需要的是
exec
eval
解析和执行表达式,而不是任意指令。您需要
exec
。如果assert是一个语句,为什么它允许在它后面加上开括号和闭括号?@SaqibAli
assert
甚至不知道语法中的括号,因为它是一个简单的语句
(True)==True
如果assert是一条语句,为什么它允许在它后面加上开括号和闭括号?@SaqibAli
assert
甚至不知道语法中的括号,同样是因为它是一条简单的语句<代码>(真)=真