码迷,mamicode.com
首页 > 编程语言 > 详细

Python__协成函数part1

时间:2017-09-12 19:47:29      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:func   span   pre   迭代器   *args   多次   tar   __next__   []   

yield的功能:

    1:把函数的执行结果封装好__iter__和__next__,即得到一个迭代器

    2:与return功能类似,都可以返回值,但不同的是,return只能返回一次值,而yield可以返回多次值

    3:函数暂停与再继续的状态是由yield保存的

def init(func):
    def wrapper(*args,**kwargs):
        g = func(*args,**kwargs)
        next(g)
        return g
    return wrapper


@init
def eater(name):
    print(%s start to eat%(name))
    food_list = []
    while True:
        food = yield food_list
        food_list.append(food)
        print(%s eat %s%(name,food))
g = eater(alex)
print(g.send(骨头))

@init
def func():
    print(我开动啦!)
    while True:
        food = input(>>: ).strip()
        print(g.send(food))

func()

 

Python__协成函数part1

标签:func   span   pre   迭代器   *args   多次   tar   __next__   []   

原文地址:http://www.cnblogs.com/llhtjwq/p/7511765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!