生成器

def func(n):
    count = 0
    while count < n:
        print('count',count)
        count += 1
        sign = yield count
        if sign == "stop":
            break
new_func = func(4) #第一个执行方法时,是把函数变成了生成器
print(new_func)


输出结果
<generator object func at 0x109b10e60>

 

def func(n):
    count = 0
    while count < n:
        print('count',count)
        count += 1
        sign = yield count
        if sign == "stop":
            break
new_func = func(4) #第一个执行方法时,是把函数变成了生成器
print(new_func)
next(new_func)#第二次执行时,执行了一次函数,然后停在yield,并返回了count


输出结果
<generator object func at 0x10f792e60>
count 0

 

def func(n):
    count = 0
    while count < n:
        print('count',count)
        count += 1
        sign = yield count
        if sign == "stop":
            break
new_func = func(4) #第一个执行方法时,是把函数变成了生成器
#print(new_func)
next(new_func)#第二次执行时,执行了一次函数,然后停在yield,并返回了count
#new_func.__next__()一样
new_func.send("stop")
#唤醒并执行yield,发送一个信息到生成器内部

 

posted @ 2018-06-05 14:52  辉辉辉辉a  阅读(96)  评论(0编辑  收藏  举报