首页 > 在Django中定义全局对象

在Django中定义全局对象

在写一个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 calculatorfrom calculator import * 均可
并不限于 Django

【热门文章】
【热门文章】