如何在模块之间传递驻留在内存中的数据结构

时间:2012-04-11 05:37:32

标签: python performance algorithm memory-management

我正在编写代码,其中我将几个文件存储到内存中的数据结构中,然后在所有模块中使用该数据结构以访问该数据结构。 (节省时间)

由于代码是用python编写的,并且非常大,所以很难从函数到函数传递数据结构。

我是否有任何可能的方法在代码的开头存储文件到数据结构,然后我可以在任何模块中使用该数据结构,因为该数据结构在程序期间驻留在内存中执行。

请帮忙。非常重要.. !!

让我举个例子。

  
    

main.py .....这是项目的开始,这里我存储了完整的文件到数据结构。     other_module.py .....这是其他一些模块,我希望访问必须驻留在内存中的数据结构,因为main.py正在执行,并且它已经调用了other_module.py。

  

注意,我不能在other_module中存储文件到数据结构的东西,因为那样它会非常耗时,因为这里给出了一个非常小的例子,但我实际上是在处理一个更大的问题。

感谢。

2 个答案:

答案 0 :(得分:1)

  

并且非常大,因此很难从函数到函数传递数据结构。

不,不是。 Python变量不起作用。你暗中得到一个指针。

答案 1 :(得分:0)

Python变量和函数参数始终只是对象的引用,因此不要担心将大型数据结构作为函数参数传递:不复制数据,只创建新引用。

但是,如果您知道您的代码将始终只处理数据结构的单个实例,则可以将其存储在全局变量中。您可以创建一个单独的模块,将数据加载到模块级变量中,并将该模块导入main.py和other_module.py。