编程语言
首页 > 编程语言> > 多个文件中的Python全局变量

多个文件中的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