itertools实例与生成器代码

来源:互联网 发布:高程测量记录表的算法 编辑:程序博客网 时间:2024/06/05 12:00
>>> for i in itertools.count(1,3):
    print(i)
    if i==10:

        break



2.深入生成器:

代码def myYield(n):
    while n>0:
        print("开始生成")
        yield n
        print("完成一次")
        n-=1
if __name__=="__main__":
    for i in myYield(4):
        print("遍历得到",i)
    print("*"*30)
    my_yield=myYield(3)
    print('已经实例化生成器对象')
    my_yield.__next__()
    print("第二次调用__next__的方法")
    my_yield.__next__()


yield语句是生成器中的关键语句,生成器在实例化时并不会立即执行,而是等待调用__next__方法才开始执行,并且当程序运行完yield语句后就hold住,

def consumer():
    print("等待任务处理")
    while True:
        data=yield
        print("接收到任务了!**任务是:",data)
def producter():
    c=consumer()
    c.__next__()
    for i in range(3):
        print("开始生成第%d个任务"%i)
        c.send("任务%d"%i)
if __name__=="__main__":
    producter()


0 0
原创粉丝点击