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__())
View Code

代码运行结果:

122

44

迭代器例2:可迭代对象

#!/usr/bin/env python
# -*- coding:utf-8 -*-

dic01={"name":"licy","age":12}
diedai01=dic01.__iter__()
print(diedai01.__next__())
print(diedai01.__next__())
View Code

代码运行结果:

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__())
View Code

代码执行结果:

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))
View Code

代码执行结果:与例子结果相同

1

2

3

你不向我走来,我便向你走去。
原文地址:https://www.cnblogs.com/renyongbin/p/15770013.html