在webpy上只初始化一次python类

时间:2017-03-17 13:16:45

标签: python python-2.7 web.py

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

以下代码似乎每次收到HTTP POST请求时都会运行“add”类的 init ()。这是浪费时间,因为初始化阶段需要很长时间。是否可以只初始化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()

1 个答案:

答案 0 :(得分:2)

尝试:

class add:
    a = ClassA()

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

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