*迭代器协议和for循环工作机制

迭代定义:每次迭代都依赖于上一次迭代(生孩子),对象就是可以生孩子的
迭代器就是用了iter方法之后的对象!

l=[1,2,3] for i in l: #i_l=l.__iter_() i_l.__next__() #任何一个列表、元组等等都不是可迭代对象,要通过一个iter方法让他们变成可迭代对象,然后执行next方法 print(i)
index=0 while index < len(l): #用索引遍历所有元素 但是while只能遍历所有有序的列表 比如 列表 元组 不能遍历字典 集合 文件 因此需要for循环 print(l[index]) index+=1

l=[1,2,3,4,5] #以下是用while循环模拟for循环 diedai_l=l.__iter__() #for循环干两件事 一是遍历所有元素 二是捕捉异常 也就是元素都遍历完了的情况 while True: try: print(diedai_l.__next__()) except StopIteration: print('迭代完毕了,循环终止了') break
print(next(iter_l)) #next()---->iter_l.__next__() #next函数 也可以这么用
浙公网安备 33010602011771号