版权声明:所有代码均为自己总结,若有雷同请勿模仿 https://blog.csdn.net/weixin_44253023/article/details/89842302
class Mylist(object):
def __init__(self,item=[]):
self.item=item
def __iter__(self):
myiterator=Myiterator(self)#使当前对象返回一个迭代器
return myiterator
def add(self,val):
self.item.append(val)
#__iter__方法会返回一个可迭代对象
#如果同时有__iter__和__next__方法,会返回一个迭代器
class Myiterator(object):
def __init__(self,mylist):
self.mylist=mylist
self.current=0
def __iter__(self):
return self
def __next__(self):
if self.current<len(self.mylist.items):#索引范围
item=self.mylist.items[self.current]
self.current+=1#依次取值,类似于计数器
return item
else:#超出索引,停止迭代异常
raise StopIteration