在 webpy 上只初始化一次 python class

Initialize a python class only once on webpy

我正在使用 web.py 来托管一个简单的网络服务。 Web 服务 运行 是后端的分析应用程序(在 ClassA 内)。在 web.py 的初始化期间,我想将所有数据预加载到内存中(即在启动 Web 服务器时仅调用一次 a = ClassA() ),并且当用户发送 Web 请求时, Web 服务器将只响应预先计算的结果(即 return a.do_something)。

每次收到 HTTP POST 请求时,下面的代码似乎 运行 init() of class 'add' .这是浪费时间,因为初始化阶段需要很长时间。是否可以只初始化一次ClassA?

import web
from aclass import ClassA

urls = (        
    '/add', 'add'
)

class add:
    def __init__(self):
        a = ClassA()

    def POST(self):
        return a.do_something()

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()

尝试:

class add:
    a = ClassA()

    def POST(self):
        return add.a.do_something()

这将使它成为 class 绑定参数而不是实例绑定参数,即只初始化一次。