1)迭代器:iter方法会返回一个迭代器,所谓迭代器就是具有next的方法,在调用next时,迭代器会返回他的下一个值)
class Fibs:
def init(self):
self.a=0
self.b=1
def next(self):
self.a=self.b
self.b=self.a+self.b
return self.a
def iter(self):
return self
fib=Fibs()
for f in fib:
if f<100:
print f
2)生成器:任何包含yield语句的函数称为生成器,类似return, 不同之处在于,yield返回的是一个生成器
def flatten(nested):
for sublist in nested:
for element in sublist:
yield element
a=[[1,2],[3,4],[5]]
for num in flatten(a):
print num