zoukankan      html  css  js  c++  java
  • Python基础-----生成器函数(生产者消费者模型)

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-

    # yield x相当于return 控制的是函数的返回值
    # 在定义生成器函数的yield时,可以给yield赋值
    # x = yield的另一个特性,接收send传过来的值,赋给x
    # send类似于__next__()方法,不过生成器刚启动时,不能send一个不为None的值,
    # 所以先要运行__next__()方法现启用生成器。

    '''
    def test():
    print('开始生产~~~')
    fir = yield 1
    print('第一个',fir)
    yield 2

    t = test()
    re = t.__next__() #开始启动生成器函数,re表示yield 后的值,该处代表 1
    print(re) #>>> 1
    res = t.send(1) #继续调用生成器函数,并将1传值给fir;res表示后面的yield返回值,该该处代表2
    print(res) #>>> 2
    '''
    # 如果模拟生产包子和吃包子,可以如下:

    import time
    def eat(name):
    print('我是【%s】,我要开始吃包子了~'%name)
    while True:
    baozi = yield
    time.sleep(1)
    print('【%s】很开心的把%s吃掉了~'%(name,baozi))

    def product():
    eat_list = ['A','B','C']
    for i in range(len(eat_list)):
    c = eat(eat_list[i])
    c.__next__()
    for b in range(5):
    c.send('包子%d'%b)
    product()
  • 相关阅读:
    抓老鼠啊~亏了还是赚了?
    币值转换
    打印沙漏
    秋季学期学习总结
    PTA币值转化
    PTA作业
    秋季学习总结
    人生最重要的3个老师
    自我介绍
    vue入门(二) 让axios发送表单形式数据
  • 原文地址:https://www.cnblogs.com/Meanwey/p/9741271.html
Copyright © 2011-2022 走看看