如何使用eval运行其他带参数的python脚本?

如何使用eval运行其他带参数的python脚本?,python,python-3.x,subprocess,eval,Python,Python 3.x,Subprocess,Eval,我有一个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.pypython脚本调用b.py的run函数,并得到结果。 但我无法理解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.pypython脚本调用b.py的run函数,并得到结果。 但我无法理解eval在这里是如何工作的。我看过python官方文档,它们超出了我的理解范围。
或者如果不是eval,那么其他选项是什么(除了使用其他文件作为模块)

您只需要这样写:)
eval()
是一种仅用于评估的方法。因此,您不能使用其他。由于
import
是一条语句,因此不能在
eval()
中使用它

其他选项有哪些(使用其他文件作为模块除外)

与导入一起工作,因此
exec()
eval()
的组合可以工作:

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

注:

  • IDE可能会抱怨
    数据
    在最新版本的代码中未定义
  • exec()
    eval()更危险

通常要做的事情是导入b并执行
data=b.add(var)
-您不需要eval来做任何事情。是的,我知道将文件作为模块导入可以工作,但有任何其他方法可以帮到您吗?导入有任何问题吗?也许我们可以试着解决这个问题,但我的函数在不同的文件中
var = 50 * 10
exec("import b")
data = eval("b.add(var)")
print(data)
var = 50 * 10
exec("import b\ndata=b.add(var)")
print(data)