如何在tornado中创建多个add_回调?

2024-04-25 12:56:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在tornado主循环中添加多个回调。但是当我运行这个代码时:

def task(num):
    print 'task %s' % num

if __name__ == '__main__':
    for i in range(1,5):
        tornado.ioloop.IOLoop.instance().add_callback(callback=lambda: task(num=i))
    tornado.ioloop.IOLoop.instance().start()

我得到5次输出:“任务5”,而不是任务1。。任务5。 当我像这样改变main时:

tornado.ioloop.IOLoop.instance().add_callback(callback=lambda: task(1))
tornado.ioloop.IOLoop.instance().add_callback(callback=lambda: task(2))
tornado.ioloop.IOLoop.instance().add_callback(callback=lambda: task(3))
tornado.ioloop.IOLoop.instance().add_callback(callback=lambda: task(4))

一切正常(我在输出中得到task1-task5)。我在第一个案子里做错了什么?


Tags: instancelambda代码nameaddtaskifmain