Python Tornado,在回调函数中访问其他数据?

Python Tornado,在回调函数中访问其他数据?,python,mongodb,tornado,asyncmongo,Python,Mongodb,Tornado,Asyncmongo,我刚刚开始了一个使用Tornado和asyncmongo的项目 我有一个带有异步方法的处理程序。在里面,我向mongo询问一些话: @tornado.web.asynchronous def get(self): word = self.get_argument('word', None) if not word: self.write('{}') self.finish() self.db.spanish_dict.find({'$or'

我刚刚开始了一个使用Tornado和asyncmongo的项目

我有一个带有异步方法的处理程序。在里面,我向mongo询问一些话:

@tornado.web.asynchronous
def get(self):
    word = self.get_argument('word', None)
    if not word:
        self.write('{}')
        self.finish()
    self.db.spanish_dict.find({'$or': [{'word': word}, {'stem': word}]},
                              callback=self._on_response)


def _on_response(self, response, error):
   # need to sort response by relevancy
在我的回调方法中,我需要原始单词来准确排序mongo结果

我找到了一个post,它使用
functools.partial
来完成这个任务,允许我向回调方法传递额外的参数

我想知道在
get
方法中设置实例属性并在
\u on\u response
中访问它是否有任何不利影响?
谢谢

@tornado.web.asynchronous
def get(self):
    word = self.get_argument('word', None)
    if not word:
        self.write('{}')
        self.finish()
    self.word = word
    self.db.spanish_dict.find({'$or': [{'word': word}, {'stem': word}]},
                              callback=self._on_response)


def _on_response(self, response, error):
   # need to sort response by relevancy
   # will self.word always be accurate?
   self.word

使用tornado.gen,您可以完全避开这个问题


使用tornado.gen,您就可以完全避开这个问题


没有龙卷风方面的专家,但可能
functools.partial
可能会在这里帮助您;将word作为参数填充到回调函数中,剩下的由实际回调函数提供?这非常有用,建议将其作为传递其他参数的建议方式使用tornado.gen,您可以完全避开这个问题:@andyboot看起来这样就可以了!如果你想回答,我不会接受任何关于龙卷风的专家,但也许
functools.partial
可以帮你;将word作为参数填充到回调函数中,剩下的由实际回调函数提供?这非常有用,建议将其作为传递其他参数的建议方式使用tornado.gen,您可以完全避开这个问题:@andyboot看起来这样就可以了!如果你想回答,我会接受的