我尝试过
eval('print("hello world")')
eval('return 0')
以上两种方式都是错误的。为什么它们是无效的,使用eval()
时应遵循哪些规则(除了尽可能少地使用)?
eval()
函数用于计算表达式(即产生一个值的内容)。而print
和return
都是定义为语句(但在Python 3中,print
实际上是一个函数调用,也就是一个表达式)。对于执行语句,需要使用 exec
语句。exec
内部,没有函数(代码在不同的执行上下文中运行,就好像它是从自己独立的源文件加载的一样)。 - Greg Hewgillf()
调用g()
,然后g()
做一些以某种方式导致f()
返回值的事情)。您可以使用eval()
运行一些外部代码,然后根据从eval()
返回的值,您可以决定从函数中return
一些东西或不返回。 - Greg Hewgilleval()函数用于将变量的值作为变量进行求值。
例如:
var="Hello World!"
code="var"
print eval(code)
输出应该是:
Hello World!