如果我有一个RequestHandler
类,它有一个self.var
在请求期间初始化的变量(如下)。可以在并发环境中覆盖该变量(threadsafe=true
)吗?例如
class MyRequestHandler(webapp2.RequestHandler):
var = None
def get(self, id):
self.var = value_from_datastore(id)
# Do something that takes time
# ...
self.response.write.out(self.var)
self.response.write.out(self.var2)
可以self.var
被第二个请求(可能来自不同的用户)覆盖,在它设置在get
方法的顶部和在输出中使用它时?
谢谢,
贝尔德
更新:
我的(错误的)印象是,将var = None
其声明为实例变量。感谢您纠正我的(张开的)误解;-)
如果我在 中做“声明” __init__
,我会更好吗?我认为这归结为是否为每个线程创建了 MyRequestHandler,或者是否为所有共享线程创建了一个。是否还会有来自不同用户的不同请求的干扰?
class MyRequestHandler(webapp2.RequestHandler):
def __init__(self):
self.var = None
def get(self, id):
self.var = value_from_datastore(id)
# Do something that takes time
# ...
self.response.write.out(self.var)
self.response.write.out(self.var2)
谢谢,
贝尔德