Python中的迭代器和生成器
迭代器 Python为迭代器提供了两个BIF: iter()和next() ,对一个对象调用iter()就得到他的迭代器,调用next()就会返回下一个值,而当迭代器没有值可以返回的时候就会抛出一个 StopIteration 的异常,关于迭代器,有两个魔法方法: __iter()__和__next()__ ,下面实例: class Fibs : def __init__ ( self , n = 20 ) : self . a = 0 self . b = 1 self . n = n def __iter__ ( self ) : return self def __next__ ( self ) : self . a , self . b = self . b , self . a + self . b if self . a > self . n : raise StopIteration return self . a fibs = Fibs ( ) for each in fibs : print ( each ) 生成器 强大的列表推导式: print ( [ i * i for i in range ( 10 ) ] ) print ( [ i for i in range ( 1000 ) if not ( i % 2 ) and ( i % 3 ) ] )