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')
        ....

初めてページにアクセスすると、シェルにが表示されます []。ページのリロード後、表示され['abc']、もう一度リロードしてから表示['abc','abc']されます。

なぜaリセットされないのですか?

4

1 に答える 1

1

Martijnとmkindの両方に感謝します!あなたはすべて正しいです、私は使用__init__しました、そしてそれは問題を解決します。

a=[]で置き換える

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

問題を解決します。

def __init__(self)単独では機能しないことに注意してください。トルネードはinitializeそれを置き換える機能を提供します。ここを読んでください:python / tornado –なぜこのエラーが発生するのですか?

于 2013-02-23T15:50:33.893 に答える