可迭代对象
是指实现了内置的iter方法的对象迭代器(iterator)
那么什么迭代器呢?它是一个带状态的对象,他能在你调用 next() 方法的时候返回容器中的下一个值,任何实现了 next() (python2中实现 next() )方法的对象都是迭代器,至于它是如何实现的这并不重要。-
注意:一个对象既可以是迭代器也可以是可迭代对象
实例:class Fib: def __init__(self): self.prev=0 self.curr=1 def __iter__(self): return self def __next__(self): value=self.curr self.curr+=self.prev self.prev=value return value
也可以用生成器来实现
class FloatRange:
def __init__(self,start,end,step):
self.start=start
self.end=end
self.step=step
#正向迭代
def __iter__(self):
t=self.start
while t<=self.end:
yield t
t+=self.step
#反向迭代
def __reversed__(self):
t=self.end
while t>=self.start:
yield t
t-=self.step