如何获取python中exec()调用的函数的返回值?

How to get the returned value of a function, called by exec() in python?

我有一个名为 'somefunc' 的函数:

def somefunc():
    return "ok"

我想 运行 它与 exec() 类似 :

exec("somefunc()")

效果很好。但问题是,我无法获得返回值"ok"。 我试过这样做:

a = exec("somefunc()")
print (a)

可是我什么都没有。 我怎样才能得到返回值?

您需要将函数输出直接存储到 a

def somefunc():
    return "ok"

exec("a = somefunc()")
print(a)

输出

ok

exec() 正在执行您将其作为文本提供的语句,因此在这种情况下,exec 会将 return 值存储在 a 变量中。

如果您想完全使用 exec() 函数,@Leo Arad 的回答是可以的。

但我认为您误解了 exec()eval() 函数。如果是这样,那么:

a = exec("somefunc()")
print (a)

当你使用 eval():

时它会起作用
a = eval("somefunc()")
print(a)