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('黎叔叔')
  • 相关阅读:
    linux定时器
    TIMESTAMP和DATETIME的区别
    Linux进程或线程绑定到CPU
    C++学习笔记
    磁盘扇区校验和
    docker安装mysql,并配置部分表同步
    docker 安装tomcat
    多tomcat 同一个浏览器 多个项目 会导致session覆盖
    Ubuntu 安装 NodeJS
    Ubuntu 下安装 Arduino IDE
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/9206390.html
Copyright © 2011-2022 走看看