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



看看这个:

>>> 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'

那么为什么逃避断言会失败呢?

eval用于表达式。 assert是一个声明。你似乎认为这是一个函数,但事实并非如此。

如果你出于某种原因愿意,你可以exec断言。

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

相关内容

  • 没有找到相关文章

最新更新