Python 知识要点:迭代器
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
iter() 函数用来生成迭代器,它主要映射到了类里面的__iter__函数,此函数返回的是一个实现了__next__的对象。
可迭代对象(Iterable)并不是指某种具体的数据类型,它是指存储了元素的一个容器对象,且容器中的元素可以通过__iter__( )方法或__getitem__( )方法访问。
迭代器(当然也是Iterable),同时实现了__iter__和__next__的对象,缺少任何一个都不算是Iterator。
from collections.abc import * class MyRange: def __init__(self, n): self.o = n m = len(n) self.i = 0 self.n = m def __iter__(self): return self def __next__(self): if self.i < self.n: ii = self.i self.i += 1 return self.o[ii] else: raise StopIteration() x = MyRange("dong_ch_eng") # 如果对象的类型与参数二的类型相同则返回 True,否则返回 False。 print(isinstance(x, Iterable)) print(isinstance(x, Iterator)) print(isinstance("dong_ch_eng", Iterable)) print(isinstance("dong_ch_eng", Iterator)) print("x.next():", x.__next__()) for i in x: print(i)
从现在开始,种下梦想中的参天大树