+ -
当前位置:首页 → 问答吧 → 关于multitask和yield

关于multitask和yield

时间:2011-03-29

来源:互联网

Python code

import multitask
def work1():
    for i in range(100,110):
        print 'work111'
        yield i

        
def work2():
    for i in range(6):
        print 'work222'
        yield i

multitask.add(work1())
multitask.add(work2())
multitask.run()


以上代码如果work2()里面改成:
Python code

def work2():
    for i in range(6):
        print 'work222'
        yield i
        yield i



则出现的结果不一样 一直觉得yield i 只是生成个生成器而已,看来还是有很多奥妙在里面,不知道怎么回事? 请高手指教啊!

作者: wangsuyi640   发布时间: 2011-03-29

没用过mutitask,也不是标准库自带的。你这样说有问题又不说清楚现象,难道要那些意图帮助你的人自己去装个新模块然后运行你的代码。
再有,这个问题是简单的yield行为吧,和mutitask有关系吗?测过mutitask去掉的没有?解决问题就应该把问题分离出来,别把些无关的混在一起。
第三,从你贴的代码来看,改过之后的行为不对是正常的。毕竟你的代码都改了,加了东西,改了代码(特别是加了新东西)还希望代码干同样的事,这样不太可能吧。yield到底是什么意思,你自己找点东西读吧。学习,不是别光凭看过的一两行代码猜测就可以了的。在保证你自己做足功课之前,切忌随意发问。

作者: iambic   发布时间: 2011-03-30