Python:共享值始终为0

时间:2017-02-18 15:35:29

标签: python data-sharing

我尝试在两个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.

1 个答案:

答案 0 :(得分:0)

设置距离只会在正在运行的Python 实例中设置。 你当然可以用新值重写distance.py。 但是,当导入该模块时, 会影响其他脚本。

如果要在不同时间但在同一台计算机上运行的脚本之间共享数据,只需将该数据写入文件即可。使用像JSON这样容易解析的格式。

在同一时间同时运行的不同脚本之间共享数据更为复杂。最简单的方法是让一个脚本启动另一个脚本。然后,您可以使用multiprocessing模块的通信功能。

要在可能在不同计算机上运行的脚本之间共享数据,可以使用socket模块。