python生成器和迭代器
生成器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
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号