我是一个有用的助手,可以为您翻译文本。
我刚开始学习Python,但找不到一种方法,在不同的Python文件之间共享静态变量。在Java中,这似乎很容易实现。以下是我想要做的事情:
data.py
在运行user1.py和user2.py后,在其中一个甚至其他一些python文件或类中,(我认为user1.py和user2.py是同一软件包中通常同时运行的两个子程序),如何用“Python方式”实现?谢谢!
===============================
问题的更新:
为了更加具体地描述问题,请允许我这样描述:
data.py
有两个额外的文件,user1.py和user2.py,暂时可以忽略它们的内容...
假设在时间=0时,user1.py和user2.py同时运行。
- 在时间=1时,消息到达(消息事件为“add”,消息数据为“001”),触发data.py中的回调函数,将“001”添加到变量list_vars中。 - 在时间=2时,user1.py更新data.py中的变量var为“002”。 - 在时间=3时,如果user2.py想要访问并打印出最新值的变量list_vars和var: - list_vars = ["001"] - var = 002
如何在Python中实现这一点?
非常感谢!
我刚开始学习Python,但找不到一种方法,在不同的Python文件之间共享静态变量。在Java中,这似乎很容易实现。以下是我想要做的事情:
data.py
class Shared(object):
list_vars = []
var = ""
@staticmethod
def print_vars():
print "list_vars = " + str(Shared.list_vars)
print "var = " + Shared.var
user1.py
import time
from data import Shared
Shared.list_vars.append("001")
time.sleep(5.0)
Shared.print_vars()
# It prints:
# list_vars = ['001']
# var =
user2.py
import time
from data import Shared
Shared.var = "002"
time.sleep(5.0)
Shared.print_vars()
# It prints:
# list_vars = []
# var = 002
抱歉,这可能不是最好的示例,但它捕捉了这个想法……我的问题是,如果我想要:
list_vars = ['001']
var = 002
在运行user1.py和user2.py后,在其中一个甚至其他一些python文件或类中,(我认为user1.py和user2.py是同一软件包中通常同时运行的两个子程序),如何用“Python方式”实现?谢谢!
===============================
问题的更新:
为了更加具体地描述问题,请允许我这样描述:
data.py
class Shared(object):
list_vars = []
var = ""
@staticmethod
def print_vars():
print "list_vars = " + str(Shared.list_vars)
print "var = " + Shared.var
# Can be considered as a separate thread running in the background, waiting for messages
@staticmethod
def callback(message):
if message.event == "add":
Shared.list_vars.append(message.data)
elif message.event == "remove" and message.data in Shared.list_vars:
Shared.list_vars.remove(message.data)
有两个额外的文件,user1.py和user2.py,暂时可以忽略它们的内容...
假设在时间=0时,user1.py和user2.py同时运行。
- 在时间=1时,消息到达(消息事件为“add”,消息数据为“001”),触发data.py中的回调函数,将“001”添加到变量list_vars中。 - 在时间=2时,user1.py更新data.py中的变量var为“002”。 - 在时间=3时,如果user2.py想要访问并打印出最新值的变量list_vars和var: - list_vars = ["001"] - var = 002
如何在Python中实现这一点?
非常感谢!