python生成器和迭代器

本文介绍了Python中生成器和迭代器的概念与实现方式。通过具体示例代码展示了如何使用生成器yield和迭代器__iter__及__next__方法来创建斐波那契数列。此外还提供了一个简单的斐波那契数列生成实例。

生成器yield是一种特殊的迭代器,使用next()来访问下一个值

 迭代器就是一个定义了__iter__()方法的类

class Fib:                                        
    def __init__(self, max):                      
        self.max = max

    def __iter__(self):                           
        self.a = 0
        self.b = 1
        return self

    def __next__(self):                           
        fib = self.a
        if fib > self.max:
            raise StopIteration                   
        self.a, self.b = self.b, self.a + self.b
        return fib                

  

>>> from fibonacci2 import Fib
>>> for n in Fib(1000):
...     print(n, end=' ')
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

  

 

转载于:https://www.cnblogs.com/vigossr/p/11238217.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值