Python自定义迭代器对象


自定义迭代器对象: 在类里面定义 __iter____next__方法创建的对象就是迭代器对象
 
 

 iter()函数与next()函数

  1. iter函数: 获取可迭代对象的迭代器,会调用可迭代对象身上的__iter__方法
  2. next函数: 获取迭代器中下一个值,会调用迭代器对象身上的__next__方法
 
 

for循环的本质

遍历的是可迭代对象

 

迭代器的作用就是是记录当前数据的位置以便获取下一个位置的值

 
# 自定义迭代器对象: 在类里面定义__iter__和__next__方法创建的对象就是迭代器对象 class MyIterator(object): def __init__(self, my_list): self.my_list = my_list # 记录当前获取数据的下标 self.current_index = 0 # 判断当前对象是否是迭代器 result = isinstance(self, Iterator) print("MyIterator创建的对象是否是迭代器:", result) def __iter__(self): return self # 获取迭代器中下一个值 def __next__(self): if self.current_index < len(self.my_list): self.current_index += 1 return self.my_list[self.current_index - 1] else: # 数据取完了,需要抛出一个停止迭代的异常 raise StopIteration
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM