0

一个简化的代码如下:

....

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不会重置?

4

1 回答 1

1

感谢 Martijn 和 mkind!大家说的都对,我用过__init__,问题解决了。

替换a=[]

def initialize(self):
    self.a=[]

会解决这个问题。

请注意,def __init__(self)单独不起作用,Tornado 提供了initialize替代它的功能。在此处阅读:python/tornado – 为什么会出现此错误?

于 2013-02-23T15:50:33.893 回答