我尝试在两个python脚本之间共享一个值,我在第一个脚本中设置了一个单例的值,但是当我在第二个脚本中获取值时,返回默认值(0)。
以下是我的文件: 获取值的文件:
import mod #import the singleton class
...
def sendDistance(self):
print(mod.getDistance()) #get the value
设置值的文件:
import mod #import the singleton class
...
mod.setDistance(35) #set the value with the singleton file mod.py
单件文件:(mod.py)
import distance #import the file where value is stored
def setDistance(val): #set Value function
distance.x=val
def getDistance(): #get value function
return distance.x
存储值的文件:(distance.py)
x=0 #the default value that should be modified from mod
如果我尝试在设置值的文件中获取值(执行print(mod.getValue())),则会正确显示该值。 但在吸气方面,该值始终为0.
答案 0 :(得分:0)
设置距离只会在正在运行的Python 实例中设置。
你当然可以用新值重写distance.py
。
但是,当导入该模块时,仅 会影响其他脚本。
如果要在不同时间但在同一台计算机上运行的脚本之间共享数据,只需将该数据写入文件即可。使用像JSON这样容易解析的格式。
在同一时间同时运行的不同脚本之间共享数据更为复杂。最简单的方法是让一个脚本启动另一个脚本。然后,您可以使用multiprocessing
模块的通信功能。
要在可能在不同计算机上运行的脚本之间共享数据,可以使用socket
模块。