from collections import Iterable
from collections import Iterator
import time
class Classmate(object):
def __init__(self):
self.names = list()
self.current_num = 0
def add(self,name):
self.names.append(name)
#判断类是否是迭代器,需要有__iter__和__next__方法
def __iter__(self):
return self
def __next__(self):
#遍历列表names的数据,以current_num计算
if self.current_num < len(self.names):
ret = self.names[self.current_num]
self.current_num += 1
return ret
else:
#如果迭代器循环结束后,抛出停止迭代器异常
raise StopIteration
#创建迭代器类的对象并添加数据
classmate = Classmate()
classmate.add("one")
classmate.add("two")
classmate.add("three")
#使用类的迭代器
for name in classmate:
print(name)
time.sleep(1)