在 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 绑定参数而不是实例绑定参数,即只初始化一次。
我正在使用 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 绑定参数而不是实例绑定参数,即只初始化一次。