*迭代器协议和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函数 也可以这么用

 

posted on 2018-05-07 21:33  monster7  阅读(188)  评论(0)    收藏  举报

导航