class MyList(object): """自定义的一个可迭代对象""" def __init__(self): self.items = [] def add(self, val): self.items.append(val) def __iter__(self): myiterator = MyIterator(self) return myiterator class MyIterator(object): """自定义的供上面可迭代对象使用的一个迭代器""" def __init__(self, mylist): self.mylist = mylist # current用来记录当前访问到的位置 self.current = 0 def __next__(self): if self.current < len(self.mylist.items): item = self.mylist.items[self.current] self.current += 1 return item else: raise StopIteration def __iter__(self): return self if __name__ == '__main__': mylist = MyList() mylist.add(1) mylist.add(2) mylist.add(3) mylist.add(4) mylist.add(5) for num in mylist: print(num)
实现了__iter__和__next__的对象是迭代器
原创
©著作权归作者所有:来自51CTO博客作者云҉淡҉风҉轻҉的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:对类中私有化的理解
下一篇:查看对象的引用计数及计数加一
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
__next__和__iter__实现迭代器协议
恢复内容开始 恢复内容结束
Python开发 编程开发 -
类中__iter__与__next__的说明
class Fab(object): def __
__iter__与__next__ 迭代 迭代器 -
Python磨刀篇|迭代器、iter和next函数等
介绍Python语言中的可迭代对象及有关基础操作。
迭代 python 高效率 -
AS kotlin查看转成的java
一、数据类(data class) 在介绍数据类之前,我们先来看看这样一段代码:class Student(val name: String, var age: Int) fun main(args: Array<String>) { val student = Student("David", 12) println(student) }
AS kotlin查看转成的java Android 移动开发 Kotlin Data Class