在写一个Django的后台应用,里面有一个查询的功能需要调用一些numpy的矩阵运算,因为希望每一次的查询都不需要将矩阵从磁盘重新读入内存,希望能够写一个类专门应对这种处理,类的构造函数就已经将矩阵读入作为成员变量,每次查询时,调用该类的某个函数返回计算的结果。但这样需要有一个能够全局访问的该类对象,而且这个对象需要在后台开启的时候就初始化一个实例。想问一下这样的设计可以用什么实现呢?
也就是说你这个数据生存周期是python运行周期。
这样的话你只需要独立一个模块儿(单文件或多文件)就可以。
比如calculator.py
内容为:
# coding=utf-8
__all__ = ["cal1"]
_g = None
class _Calculate(object):
def __init__(self): pass
def cal1(self):
# do some calculate
return
if _g is None:
_g = _Calculate()
def cal1():
return _g.cal1()
使用方式 import calculator
或 from calculator import *
均可
并不限于 Django