Skip to main content
 首页 » 编程设计

python之用另一个 Python 程序更改正在运行的 Python 程序的全局变量

2025年05月04日18tuyile006

假设我有一个像这样的 Python 程序 (first.py):

GLOBALVAR = "pineapple" 
 
def changeVAR(newValue): 
     global GLOBALVAR 
     GLOBALVAR = newValue 
 
while(True): 
   print GLOBALVAR 

我想在第一个运行时用另一个 python 程序调用全局变量 GLOBALVAR。例如(second.py):

from second import changeVAR 
 
#do something 
first.changeVAR("banana") 

有没有可能做这样的事情?意思是,用另一个程序更改正在运行的程序的全局变量?

提前致谢!

请您参考如下方法:

你所描述的(共享相同变量的程序)只可能在不同的threads之间发生。 (它们共享相同的 Python 解释器和数据),而不是在不同的进程之间。

现代操作系统不允许一个程序访问另一个程序的内存。所以你不能仅仅进入另一个进程的内存并在那里改变一些东西。允许这样做会产生各种错误和安全问题。

可以使用进程间通信与另一个程序进行通信。这可以通过例如sockets , memory mapped files或写入彼此的标准输入和输出。也支持 semaphores, shared memoy and message queues在类 UNIX 操作系统上。

multiprocessing 模块提供了 Queue and Pipe允许相关进程相互交谈的对象。