我正在使用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()
答案 0 :(得分:2)
尝试:
class add:
a = ClassA()
def POST(self):
return add.a.do_something()
这将使它成为一个类绑定参数而不是实例绑定参数,即只初始化一次。