如何获取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)
我有一个名为 '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)