将一个类变为iterable应用于需要迭代遍历的场景非常方便。
python中将一个类变为可迭代的分为两步:
1)实现 __iter__() 方法,返回迭代器
2)实现迭代器的next方法
简化方式:
1)在类中定义__iter__方法返回self
2)在类中定义next函数,返回下个对象
实例:
class MakeJobs(object):
"""Iterable job creator"""
def __init__(self, conf):
self.index = 0
self.obj_num = 10
def __iter__(self):
return self
def next(self):
if self.index == self.obj_num:
raise StopIteration
self.index += 1
## create obj 并返回,本例中简单返回index
return self.index