Python生成器主要用法
代码如下:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = '人生入戏' def use(name): print("%s开始捡屎了。。。" % name) while True: res = yield print("%s捡了%s个屎" % (name,res)) def product(name_mon): mon = use(name_mon) mon.__next__() for i in range(10): print("儿子又拉了一个屎") i+=1 mon.send(i) product("妈妈")
这叫协程,又叫微线程。
运行结果如下:
妈妈开始捡屎了。。。
儿子又拉了一个屎
妈妈捡了1个屎
儿子又拉了一个屎
妈妈捡了2个屎
儿子又拉了一个屎
妈妈捡了3个屎
儿子又拉了一个屎
妈妈捡了4个屎
儿子又拉了一个屎
妈妈捡了5个屎
儿子又拉了一个屎
妈妈捡了6个屎
儿子又拉了一个屎
妈妈捡了7个屎
儿子又拉了一个屎
妈妈捡了8个屎
儿子又拉了一个屎
妈妈捡了9个屎
儿子又拉了一个屎
妈妈捡了10个屎