龙卷风,在回调函数中访问其他数据?

时间:2013-01-30 14:06:33

标签: 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': [{'word': word}, {'stem': word}]},
                              callback=self._on_response)


def _on_response(self, response, error):
   # need to sort response by relevancy

在我的回调方法中,我需要原始单词来准确地对mongo结果进行排序。

我发现this帖子使用functools.partial来完成此操作,允许我将其他参数传递给回调方法

我想知道在get方法中设置实例属性并在_on_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

1 个答案:

答案 0 :(得分:1)