在Python脚本间传递变量的简单方法?
我刚开始学习Python和编程,所以可能在找这个问题的语法时走了弯路。
我正在写一些Python脚本。例如,在一个脚本中,我获取传感器数据,比如时间、高度和压力,我们叫这个脚本为getsensor.py。
然后,我还有另一个脚本需要使用“getsensor.py”中的数据,我们叫这个脚本为buildstring.py。
所以,我想写一个简单的主脚本,先调用“getsensor.py”,然后再调用“buildstring.py”。
我以为可以在“buildstring.py”的开头写“from getsensor import time, altitude, pressure”,但这似乎不是我预期的效果……有没有什么建议或者提示可以让我找到正确的方向?我想尽量保持简单。
补充:看起来通过“import X”命令会直接运行那个脚本。所以当我这样做时,我的X脚本里有一些代码导致我的脚本一直在无限循环。其实我之前只写过汇编语言,所以不太清楚如何保存可以在多个Python脚本之间共享的数据。
3 个回答
0
这要看你是怎么存储这些变量的。
如果你把它们当作全局变量,可以参考这个解决方案。
不过,我建议你通过方法调用,把变量从getsensor.py传递到buildstring.py。
比如,在buildstring.py里写一个方法,让它接收这些变量作为参数:
def getVars(time, altitude, pressure):
# Do stuff with variables here, or pass them to other local methods
然后在getsensor.py中:
x = 100
y = 2
z = 8
def passVars():
import buildstring.py
buildstring.getVars(x, y, z)
0
通常,每个模块都会有一个入口点,这样你就可以做一些类似下面的事情:
from buildstring import app
from getsensor import main
result = app(1)
main(result)
2
有很多方法可以做到这一点,一个简单的方法是创建一个集中式的脚本,然后执行它来运行你的函数。
你可以像你在问题中列出的那样导入所需的函数。
#main.py
from getsensor import time, altitude
from buildstring import your_function
if __name__ == '__main__':
result = altitude()
your_function(result)
正如你所看到的,有很多方法可以实现你想要的功能。最重要的是要认真考虑你程序的结构和模块之间的关系,这样你的程序才能方便扩展和维护。