zoukankan      html  css  js  c++  java
  • Python 生成器

    一、一个函数调用时返回一个迭代器,那么这个函数就叫做生成器,如果函数中包含yield语法,那么这个函数就会变成生成器。

    二、#生成器可以在函数执行的时候干其它事情,函数依然保持中断状态,为异步请求

     1 def cash_out(amount):
     2     while amount > 0:
     3         amount -= 100
     4         yield amount
     5         print("又来取钱啦")
     6 
     7 atm = cash_out(500)
     8 print(type(atm))
     9 print(atm.__next__())
    10 print(atm.__next__())
    11 print("干别的事情")#干别的事情
    12 print(atm.__next__())
    13 print(atm.__next__())

      <class 'generator'>
      400
      又来取钱啦
      300
      我好帅
      又来取钱啦
      200
      又来取钱啦
      100

    三、生产者消费者模型

     1 import time
     2 
     3 def xiaofeizhe(name):
     4     print("{0} 准备开始吃包子了".format(name))
     5     while True:
     6         baozi = yield
     7         print("{0}吃了{1}个包子了".format(name,baozi))
     8 def shengchanzhe(name):
     9     print("我要开始做包子啦")
    10     c = xiaofeizhe("A1")
    11     c2 = xiaofeizhe("A2")
    12     c.__next__()
    13     c2.__next__()
    14     for i in range(10):
    15         time.sleep(1)
    16         print("{0}做了两个包子".format(name))
    17         c.send(i)
    18         c2.send(i)
    19 if __name__ == "__main__":
    20     shengchanzhe('黎叔叔')
  • 相关阅读:
    LinkedList -链表集合
    java包装类,自动装箱,拆箱,以及基本数据类型与字符串的转换
    StringBuilder -字符串缓冲区,节约内层空间变长数组
    System的两常用个静态方法
    StringBuilder
    mysql
    空房间
    数据结构占坑
    sql语句优化
    editPlus快捷键
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/9206390.html
Copyright © 2011-2022 走看看