from collections.abc import Iterator
class Company(object):
def __init__(self, employee_list):
self.employee = employee_list
def __iter__(self):
return MyIterator(self.employee) # 将list传入到这个里面自定义的Iterator里面,并且实现了__iter__,那么这个对象就可以是Iterator对象
class MyIterator(Iterator):
def __init__(self, employee_list):
self.iter_list = employee_list
self.index = 0
def __next__(self):
#真正返回迭代值的逻辑
try:
word = self.iter_list[self.index]
except IndexError:
raise StopIteration # 这里必须抛出StopIteration,不然会一直跑
self.index += 1
return word
if __name__ == "__main__":
company = Company(["tom", "bob", "jane"])
for item in company:
print (item)