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个屎

 

posted @ 2017-08-13 14:52  人生入戏  阅读(263)  评论(0编辑  收藏  举报