理解python中的迭代器对象、可迭代对象、生成器对象

您所在的位置:网站首页 迭代器和可迭代对象的区别和联系是什么 理解python中的迭代器对象、可迭代对象、生成器对象

理解python中的迭代器对象、可迭代对象、生成器对象

2024-07-11 16:48| 来源: 网络整理| 查看: 265

最近又开始学习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.counter

ItRange这个类满足了上述的三点要求,是一个迭代器对象。

obj = ItRange(3) # 设置迭代次数上限是3 print(next(obj)) # 输出0, 等价于 obj.__next__() 都是在调用obj这个实例中的__next__方法,


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3