高端网站哪种好,WordPress媒体库丢失,php在电子商务网站建设中的应用研究 戴书浩,newcard wordpress迭代器
迭代器是一个实现了迭代器协议的容器对象。它基于以下两个方法。 __ next __#xff1a;返回容器的下一个元素。 __ iter __#xff1a;返回迭代器本身 迭代器可以利用内置的iter函数和一个序列来创建, 假设我们的序列为[1, 2, 3],迭代器创建过程如下#xff1a;
i…迭代器
迭代器是一个实现了迭代器协议的容器对象。它基于以下两个方法。 __ next __返回容器的下一个元素。 __ iter __返回迭代器本身 迭代器可以利用内置的iter函数和一个序列来创建, 假设我们的序列为[1, 2, 3],迭代器创建过程如下
i iter([1, 2, 3])随后我们可以使用next来对迭代器对象进行迭代
但如果序列元素已经被遍历完了再使用next就会引发报错
但这一停止方式是与循环语句适配的所以可以和循环语句搭配使用
for x in iter([1, 2, 3]):print(x)如果需要创建自己的迭代器我们需要先创建一个类在类中需要包含__next__方法和__iter__方法。同时在__next__方法中约定终止条件终止时需要抛出StopIteration错误。在__iter__方法中需要返回self 下面我们仿照内置iter的形式来创建自己的迭代器
class MyIter():def __init__(self, lst):self.lst lstself.idx 0self.len len(lst)def __next__(self):if self.idx self.len:raise StopIterationself.idx 1return self.lst[self.idx-1]def __iter__(self):return self最后我们测试一下
for x in MyIter([a, b, c]):print(x)可以看到完全一致的效果