如何使用eval运行其他带参数的python脚本?
我有一个python文件a.py,其中包含以下代码:如何使用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官方文档,
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()更危险
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)