为什么在Python中执行 eval("assert(True)") 失败?
问题出现的原因是因为在Python中,eval()
函数只能用于表达式,而assert
是一个语句。所以在eval("assert(True)")
中,assert(True)
被认为是一个语句而不是一个表达式,因此无法被eval()
函数执行。
要解决这个问题,可以使用exec()
函数来执行assert
语句。可以将assert this is silly
作为一个字符串传递给exec()
函数,然后执行它。
以下是解决方法的示例代码:
this = silly = [] exec('assert this is silly')
这样就可以成功执行assert
语句了。
至于为什么assert
语句允许在它后面使用括号,是因为assert
语句对这些括号并不敏感,因为它是一个简单语句。在Python中,(True)
和True
是等价的。
以上就是关于为什么eval("assert(True)")
会失败以及如何解决这个问题的内容。