Python - 另一个导入模块中的全局变量是否与其他实例保持唯一

时间:2015-03-07 16:19:36

标签: python

如果模块A是主启动器并且将导入具有全局data_set的模块B,那么多个实例在内存中是否具有唯一且独立的数据? 我担心的是,如果我在不同的应用程序中运行模块A的多个运行实例,那么模块A和模块A中的数据将会被运行。 B互相影响?

如果流程P和流程Q都在运行模块A,流程P中的数据是否会影响流程Q中的数据?

我没有持久数据,它都是运行时。

基本上,我有模块B,它是一个utils文件,但是有几个辅助函数依赖于我传递的全局数据缓存(字典或列表或w / e)。我想确保当我运行几个不同的进程时它们不会混合,因为变量名称空间是相同的。

moduleA.py

import moduleB


def main():

   data = [x for x in range(100)]
   moduleB.dosomething(data)

moduleB.py

global data_cache = []


def function1(x):
   global data_cache

   data.cache.append(x)

def dosomething():

   fucntion1(data.cache.pop())

1 个答案:

答案 0 :(得分:1)

进程不共享进程内存。模块在单个进程中具有独立但持久的范围。从模块而不是模块本身导入名称会生成对象的浅表副本。