【问题标题】:How to get the returned value of a function, called by exec() in python?如何获取python中exec()调用的函数的返回值?
【发布时间】:2020-06-07 09:58:12
【问题描述】:

我有一个名为“somefunc”的函数:

def somefunc():
    return "ok"

我想用 exec() 来运行它:

exec("somefunc()")

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

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

但我什么都没有。 如何获取返回值?

【问题讨论】:

  • 如果您需要通过字符串变量动态调用函数,您可以创建一个以函数名称为键的函数字典。 exec 解决方案很少是最优的。

标签: python python-3.x function python-exec


【解决方案1】:

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

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

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

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

a = eval("somefunc()")
print(a)

【讨论】:

    【解决方案2】:

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

    def somefunc():
        return "ok"
    
    exec("a = somefunc()")
    print(a)
    

    输出

    ok
    

    exec() 正在执行您以文本形式提供的语句,因此在这种情况下,exec 会将返回值存储在 a 变量中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-13
      • 2016-01-29
      • 2013-10-24
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      相关资源
      最近更新 更多