简化代码如下:
....
class indexHandler(tornado.web.RequestHandler):
a=[]
def callback(self,response):
#Do some other things, like write into database
self.a=[]
def get(self):
print self.a
self.a.append('abc')
client=tornado.httpclient.AsyncHTTPClient()
client.fetch('http://google.com',self.callback)
self.write('OK')
....
当我第一次访问该页面时,shell会显示
[]
。
页面重新加载后,会显示['abc']
,再次重新加载,然后显示['abc','abc']
,依此类推。
为什么a
不会重置?
答案 0 :(得分:1)
感谢Martijn和mkind!
你们都是对的,我用__init__
来解决问题。
用
代替a=[]
def initialize(self):
self.a=[]
可以解决问题。
请注意,仅def __init__(self)
不起作用,Tornado提供initialize
函数来替换它。请在此处阅读:python/tornado – Why am I getting this error?