更改流程的变量
Posted
技术标签:
【中文标题】更改流程的变量【英文标题】:Change a process' variable 【发布时间】:2019-05-15 10:37:39 【问题描述】:我有一个 python 程序,它根据给定全局变量“a”的值定期执行一些工作。 另一个python程序如何将“a”的值更改为(比如说)20?
a = 10
def run_program():
global a
while True:
time.sleep(1)
print(a)
我尝试使用操作系统信号,但信号(例如 USR1)无法传递变量
有什么帮助吗?
【问题讨论】:
你可以使用环境变量在第一个程序中修改它并在第二个程序中读取它。 您标记了interprocess,但您的代码没有显示任何尝试。你有没有尝试https://docs.python.org/3.7/library/ipc.html 的任何东西?如果有,请分享。要求我们为您编写代码超出了本网站目的范围(过于宽泛、离题)。 【参考方案1】:您可以使用环境变量,在第一个程序中修改它并在第二个程序中使用它:
方案一:
import os
# Set environment variables
os.environ['YOUR_VARIABLE'] = 10
方案二:
import os
def run_program():
a = os.environ.get('YOUR_VARIABLE')
while True:
time.sleep(1)
print(a)
还要注意,使用这个想法可以避免使用全局变量。
【讨论】:
我想 os.environ.get() 是在循环内读取的 :-) 这样做,变量不受“程序一”的影响 :-/ @Leo 我不明白这个问题,你想读取循环内的变量吗? ,你可以这样做。以上是关于更改流程的变量的主要内容,如果未能解决你的问题,请参考以下文章