py04_06:生成器

 生成器的工作原理

如果再次调用函数时。代码是从yield的位置继续往下执行。而不是从函数本身。

# 生成器一个特殊的迭代器,他没有__iter__ , __next__两个方法,但通过yield,同样实现了迭代器的功能,所以说生成器是一个特殊的迭代器
def create_num(all_count):
    print('1'.center(50, '-'))
    a, b = 0, 1
    count = 0
    while count < all_count:
        print('2'.center(50, '-'))
        yield a
        print('分割线'.center(50, '-'))
        a, b = b, a + b
        count += 1
        print('4'.center(50, '-'))


t1 = create_num(10)  # 生成迭代器的对象

result = next(t1)
print(result)

result = next(t1)
上图代码

 调用生成器的两种方法

猜你喜欢

转载自www.cnblogs.com/yeyu1314/p/12590743.html