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('黎叔叔')
  • 相关阅读:
    申论1
    why factory pattern and when to use factory pattern
    jvm的字符串池
    is assembler instruction and machine instuction atomic
    jvm本身的多线程机制
    final
    java类的加载
    path和classpath的用途
    jar -cmf file1 file2 file3命令
    MANIFEST.MF中的MF是什么意思
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/9206390.html
Copyright © 2011-2022 走看看