自定义迭代器对象: 在类里面定义
__iter__和
__next__方法创建的对象就是迭代器对象
iter()函数与next()函数
- iter函数: 获取可迭代对象的迭代器,会调用可迭代对象身上的__iter__方法
- 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