多个文件中的Python全局变量
作者:互联网
我有2个守护进程,应该访问相同的变量.
我为全局变量创建了第3个文件,每个守护进程都可以访问该变量.但是当一个人改变变量时,另一个人仍然会看到默认值.
例:
glob.py
time = 0
守护进程a:
import datetime
import time
import glob
while(True):
glob.time = datetime.datetime.now()
time.sleep(30)
守护进程b:
import glob
while(True):
print(glob.time)
它会每次打印0
我希望我的问题清楚,有人可以帮助我.
如果您需要更多信息,请随时询问.
解决方法:
看起来(尽管你没有明确说明)你是以完全独立的方式运行你的程序:两个不同的Python解释器调用.
没有你希望存在的魔法:就好像你有两个相同程序运行的实例一样,每个实例都有变量实例(全局或其他).
如果您正在执行一些简单的任务,更简单的方法是将一个文本文件作为每个进程的输出,另一个进程尝试从其想要了解的每个进程生成的文件中读取信息 – (您甚至可以在Unixes中使用命名管道).
另一种方法是使用Python脚本来协调使用多处理stdlib模块启动守护进程,然后创建一个multiprocessing.Manager对象以在进程之间直接共享变量.
首先设置起来可能会更复杂,但这样做很干净.检查Manager类上的文档:
https://docs.python.org/3/library/multiprocessing.html
标签:multiple-files,python,global-variables,global 来源: https://codeday.me/bug/20190925/1816886.html