首页 > 解决方案 > 如何使用 eval 运行其他带参数的 python 脚本?

问题描述

我有一个包含代码的 python 文件 a.py:

var=50*10
data= # eval here to call add function of b.py with argument var
print(data)

b.py 包含代码:

def add(h):
    res=h+10
    return res

现在我想要的是使用 eval 从带有参数的 a.py python 脚本调用 b.py 的运行函数并获得结果。但我无法理解 eval 在这里的工作原理。我看过 python 官方文档,它们超出了我的理解。或者如果不是 eval 那么其他选项是什么(使用其他文件作为模块除外)

标签: pythonpython-3.xsubprocesseval

解决方案


eval()是一种仅用于评估表达式的方法。因此,您不能使用其他语句。因为import是一个语句,所以不能在eval().

其他选项是什么(使用其他文件作为模块除外)

exec()与 import 一起使用,因此exec()和的组合eval()起作用:

var = 50 * 10
exec("import b")
data = eval("b.add(var)")
print(data)

甚至exec()没有eval()

var = 50 * 10
exec("import b\ndata=b.add(var)")
print(data)

笔记:

  • IDE 可能会抱怨data在最后一个版本的代码中未定义
  • exec()甚至比eval()

推荐阅读