用另一个Python程序更改正在运行的Python程序的全局变量
让我们想象一下,我有一个Python程序,像这样(first.py): 我想在第一个python程序运行时,用另一个python程序唱出全局变量GLOBALVAR。例如(second.py): 有可能这样做吗?也就是说,用另一个程序更改正在运行的程序的全局变量用另一个Python程序更改正在运行的Python程序的全局变量,python,global-variables,Python,Global Variables,让我们想象一下,我有一个Python程序,像这样(first.py): 我想在第一个python程序运行时,用另一个python程序唱出全局变量GLOBALVAR。例如(second.py): 有可能这样做吗?也就是说,用另一个程序更改正在运行的程序的全局变量 提前谢谢你 是的,但这是一个动态更改,因此如果稍后再次静态加载模块,更改将不会持续。但是,在更改后,无论何时使用该模块,它都会保持不变 您甚至可以简单地调用first.GLOBALVAR='banana',以获得相同的结果。您所描述的(共
提前谢谢你 是的,但这是一个动态更改,因此如果稍后再次静态加载模块,更改将不会持续。但是,在更改后,无论何时使用该模块,它都会保持不变 您甚至可以简单地调用
first.GLOBALVAR='banana'
,以获得相同的结果。您所描述的(共享相同变量的程序)只能在不同的进程之间(共享相同的python解释器和数据),而不能在不同的进程之间
现代操作系统不允许一个程序访问另一个程序的内存。因此,你不能仅仅进入另一个过程的记忆,然后在那里改变一些东西。允许这样做会产生各种各样的漏洞和安全问题
可以使用进程间通信与另一个程序通信。这可以通过例如,或写入彼此的标准输入和输出来完成。还支持在类似UNIX的操作系统上运行
多处理
模块提供了对象,以允许相关的已处理对象相互对话。我正在使用的解决方法。就是在某处创建一个空文件。
然后是一个程序。如果该文件为空,则无法读取该文件(例如每2秒左右),然后不执行任何操作。如果需要,另一个可以写入这个文件。写入后,另一个程序将从文件中读取写入的数据,将其用作新变量,然后清除文件,准备进行新的读取。我在读取文件的服务器上使用它,然后从另一个程序我可以向服务器发送“命令”(使用它来语音控制照明),打开/关闭灯等等 导入模块不会连接到另一个正在运行的程序,这似乎是塔利斯想要做的。我完全同意这一点,只是想解释一下发生了什么。你的回答很有帮助。
GLOBALVAR = "pineapple"
def changeVAR(newValue):
global GLOBALVAR
GLOBALVAR = newValue
while(True):
print GLOBALVAR
from second import changeVAR
#do something
first.changeVAR("banana")