""" 迭代 Iteration:每次重复的结果作为下一次重复的开始 迭代器 Iterator :完成迭代的对象,具有__next__() 可迭代对象 Iterable:创建迭代器的对象,具有__iter__() """ message = '我是齐天大圣孙悟空' # 原理 # for item in message: # print(item) # ###面向过程原理 # 1.获取迭代器 iterator = message.__iter__() while True: try: # 2.获取下一个元素 item = iterator.__next__() print(item) # 3.如果停止迭代,则退出循环 except StopIteration: break """ 自定义对象参与for循环 """ # ###面向对象原理 class StudentIterator: def __init__(self, data): self.data = data # 实例化可迭代对象 self.index = -1 # 初始索引值 def __next__(self): # 获取下一个元素 # 判断索引值范围 if self.index < len(self.data) - 1: self.index += 1 return self.data[self.index] # 返回元素 raise StopIteration() # 发送错误消息 class StudentController: def __init__(self): self.list_student = [] def __iter__(self): # 创建并返回可迭代对象 return StudentIterator(self.list_student) controller = StudentController() controller.list_student.append("lzl") controller.list_student.append("jzl") controller.list_student.append("qjk") iterator = controller.__iter__() while True: try: item = iterator.__next__() print(item) except StopIteration: # 接受错误消息 break
Python重点知识三:迭代器
于 2023-04-11 09:10:50 首次发布