实现了__iter__和__next__的对象是迭代器
2023-09-11 14:21:27 时间
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)
2020-05-08
相关文章
- 关于JavaScript面向对象中构造函数和原型对象的学习与理解
- Python的Numpy库的ndarray对象常用构造方法及初始化方法
- 30Vue - 列表渲染(对象迭代 v-for)
- 多重继承及虚继承中对象内存的分布
- 《Android游戏开发详解》一2.13 调用对象的行为
- 依赖注入及AOP简述(十二)——依赖注入对象的行为增强(AOP) .
- Delphi 画布对象
- SwiftUI 代码库之 33 ForEach 循环既获得index,又获得对象
- 设计模式之美:Null Object(空对象)
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型(CSOM)基础
- JAVA学习第三十三课(经常使用对象API) —迭代器
- python第三十六课——2.迭代器对象
- C++实现一个只能在堆(栈)上生成对象的类