0

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

def somefunc():
    return "ok"

我想用 exec() 像这样运行它:

exec("somefunc()")

这很好用。但问题是,我无法获得返回值“ok”。我试过这样做:

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

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

4

2 回答 2

2

You need to store the function output straight to a

def somefunc():
    return "ok"

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

Output

ok

exec() is executing the statement that you provide it as text so in this case, the exec will store the return value the a variable.

于 2020-06-07T10:00:36.837 回答
2

如果您想完全使用该exec()功能,@Leo Arad 的答案是可以的。

但我认为你误解了exec()eval()功能。如果是这样,那么:

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

当你使用它时它会起作用eval()

a = eval("somefunc()")
print(a)
于 2020-06-07T10:09:14.300 回答