Python自动化开发-迭代器
Python自动化开发-迭代器
迭代器基础概念
迭代器:迭代器即迭代的工具,那什么是迭代呢?迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值。
可迭代对象:可迭代对象指的是内置有__iter__方法的对象,即obj.__iter__。
迭代器对象:可迭代对象执行obj.__iter__()得到的结果就是迭代器对象,而迭代器对象指的是即内置有__iter__又内置有__next__方法的对象。
需要提醒下:迭代器对象一定是可迭代对象,而可迭代对象不一定是迭代器对象!
迭代器例1:可迭代对象
#!/usr/bin/env python # -*- coding:utf-8 -*- #迭代器协议例子 t01=[122,44] t02=t01.__iter__() print(t02.__next__()) print(t02.__next__())
代码运行结果:
122
44
迭代器例2:可迭代对象
#!/usr/bin/env python # -*- coding:utf-8 -*- dic01={"name":"licy","age":12} diedai01=dic01.__iter__() print(diedai01.__next__()) print(diedai01.__next__())
代码运行结果:
age
name
for循环机制
for循环也是基于遵循迭代器协议!
next()方法
next()方法:实际上就是调用对象的可迭代对象next方法
例1:
#!/usr/bin/env python # -*- coding:utf-8 -*- #next()方法:实际上就是调用对象的可迭代对象next方法 t01=[1,2,3] l=t01.__iter__() print(l.__next__()) print(l.__next__()) print(l.__next__())
代码执行结果:
1
2
3
例2:
#!/usr/bin/env python # -*- coding:utf-8 -*- #next()方法:实际上就是调用对象的可迭代对象next方法 t01=[1,2,3] l=t01.__iter__() print(next(l)) print(next(l)) print(next(l))
代码执行结果:与例子结果相同
1
2
3
你不向我走来,我便向你走去。