python生成器简单代码了理解。

2018-08-07 08:50:25来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

__author__ = 'ZHHT'
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#返回当前执行到的函数的返回值。并保持当前执行的状态。这时候先执行别的。下次在执行的时候,接者上次调用的位置,继续往下执行代码。
def fib(num):
    n = 0
    a,b=0,1
    while n <num:
        yield b
        a,b=b,a+b
        n+=1
    return '完成'

f = fib(5)

while True:
    try:
        x = next(f)
        print("value%d"%x)
    except StopIteration as e:
        print("生成器返回值--'%s'"%e.value)
        break

#第二种是例子:
def gen():
    i = 0
    while i < 5:
        temp = yield i
        print(temp)
        i+=1

f = gen()

print(next(f))
print(next(f))
print(next(f))
#它和上面的相同点就是能够继续迭代执行。不通过点是,流程走到yield 返回了i的值,在执行后面的时候temp则接受到的是None,而send则是发了个值贵temp接受就这样一个情况
print(f.send("haha1"))
print(f.send("haha2"))

  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:一、数值类型与序列类型

下一篇:第一章python 简介