我想避免在Python中重新计算昂贵的数组。幸运的是,它是不可变的-因此“复制指针”就足够了。不幸的是,程序被分成了模块负载,我在这里和那里都需要它,并且变量在Python中最多是模块全局的。计算一次(例如在main中)后,如何将数组“导入”到另一个模块中?
(对不起,没有任何有用的代码)
好吧,实际结果是该程序是蜗牛,要进行1000000次运行才能获取有意义的统计信息……
答案 0 :(得分:0)
如果我的理解是正确的(可以随时纠正我),那么如果在workspace.py
中有一个全局变量,并且我有另一个程序project.py
,则可以运行from workspace import *
获得与我的workspace.py
文件相同的全局变量名称空间。但是,这通常会让人皱眉,因为您可能会不知不觉地重用相同的变量名而没有意识到,从而破坏了程序。它还(在大多数情况下不必要)将变量所有加载到RAM中,实际上使project.py
只是原始workspace.py
的扩展,可以访问相同的类,方法和变量
答案 1 :(得分:0)
如果将bigArray计算放在bigArray.py模块中,则应该可以通过专门导入来在其他任何模块中使用它:
from bigArray import bigArray
如果您希望仅在首次引用该数组时才对其进行计算,则bigArray.py模块可以使用函数公开该数组。
# bigArray.py
#
bigArray = None
def getBigArray():
if bigArray is None:
... build the bigArray ...
return bigArray
# otherModule.py
#
from bigArray import getBigArray
...
arr = getBigArray() # to use the array
...