python-面向对象-迭代器

版权声明:所有代码均为自己总结,若有雷同请勿模仿 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

猜你喜欢

转载自blog.csdn.net/weixin_44253023/article/details/89842302