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

时间:2021-09-10 14:38:50

一、递归和迭代

举个例子

递归:假如我去问路,路人甲看我长得盛世容颜,但是他不知道,他就去帮我问路人乙去了,路人乙跟路人甲说我也不知道,但一看路人甲美若天仙,就说,我去帮你问问路人丙,。。。完了可能得到答案

迭代:依然是问路,我去问路人甲,路人甲一看我长得车祸现场,就说我不知道,你去问问路人乙去吧。。。

二、什么是迭代器协议?

1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中得下一项,要么引起一个stoplteration异常,以终止迭代

2.可迭代对象:实现了迭代器协议的对象,

3.迭代是一种约定。可迭代对象实现了迭代器协议,python的内置工具如for循环,max,min,sum。等函数,使用迭代器对象访问

三、python中强大的for循环机制

# x='hello'
# # print(dir(x))
# iter_test=x.__iter__()
#
# print(iter_test)
# print(iter_test.__next__())
# print(iter_test.__next__())
# print(iter_test.__next__())
# print(iter_test.__next__())
# print(iter_test.__next__())
# print(iter_test.__next__()) # l=[1,2,3]
# for i in l: #i_l=l.__iter_() i_l.__next__()
# print(i)