理解python中的迭代器对象、可迭代对象、生成器对象 |
您所在的位置:网站首页 › 迭代器和可迭代对象的区别和联系是什么 › 理解python中的迭代器对象、可迭代对象、生成器对象 |
最近又开始学习Python了,但是在遇到迭代器对象、可迭代对象、生成器对象的时候,感到十分懵逼,所以上B站查了下,本文主要参考对象:15分钟彻底搞懂迭代器、可迭代对象、生成器【python迭代器】,有空的话可以看看,up主讲得挺清楚的。 迭代器对象首先来看迭代器对象的定义: 类中定义了__iter__和__next__方法 __iter__方法返回self,也就是自身 __next__方法返回下一个数据,如果没有数据了,则要返回StopIteration的异常(一定要定义什么时候结束迭代,否则就会像没有break的while True循环一样,一直进行下去)举个例子: class ItRange(): def __init__(self,num): self.num = num self.counter = -1 # 注意,counter是从-1开始的,所以第一次调用__next__函数,会返回0 def __iter__(self): return self def __next__(self): self.counter += 1 if self.counter == self.num: # 如果迭代次数超过num,则触发异常StopIteration,停止迭代,并返回属性counter raise StopIteration() return self.counterItRange这个类满足了上述的三点要求,是一个迭代器对象。 obj = ItRange(3) # 设置迭代次数上限是3 print(next(obj)) # 输出0, 等价于 obj.__next__() 都是在调用obj这个实例中的__next__方法, |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |