当前位置: 首页 > 图灵资讯 > 行业资讯> Python之可迭代对象、迭代器、生成器

Python之可迭代对象、迭代器、生成器

发布时间:2025-10-14 17:54:15

Python可迭代对象(Iterable)

for经常用于在Python中遍历一个对象。此时,被遍历的对象是可迭代的对象,如常见的列表和Tuple。如果给出一个准确的定义,只要它定义,它就可以返回到迭代器__iter__方法,或定义可支持下标索引的__getitem__方法,那么它就是一个可迭代的对象。

Python迭代器(iterator)

迭代器是通过next()实现的。每次调用,他都会返回下一个元素。当没有下一个元素时,返回stopiteration异常,因此实际定义这种方法的是迭代器。您可以通过以下示例体验迭代器:

生成器(Generators)

生成器是构造迭代器最简单有力的工具。与普通函数不同的是,返回一个值时只使用yield代替return,然后yield将自动构建next()和iter()

由于迭代器如此普遍,python专门为for关键字制作了迭代器语法糖。在for循环中,python将自动调用工厂函数iter()获取迭代器,自动调用next()获取元素,并完成检查stopiteration异常的工作。

相关推荐:Python视频教程

定义迭代器

下面的例子-斐波那契数列

#-*-coding:cp936-*-
classFabs(object):
def__init__(self,max):
self.max=max
self.n,self.a,self.b=0,0,1#特别指出,第0项是0,第1项是第1项。整个数列从1开始
def__iter__(self):
returnself
defnext(self):
ifself.n<self.max:
r=self.b
self.a,self.b=self.b,self.a+self.b
self.n=self.n+1
returnr
raiseStopIteration()

printFabs(5)
forkeyinFabs(5):
printkey

结果

<__main__.0x01,Fabsobjectat>
1
1
2
3
5

相关文章

Python之可迭代对象、迭代器、生成器

Python之可迭代对象、迭代器、生成器

2025-10-14
什么是线程(多线程),Python多线程的好处

什么是线程(多线程),Python多线程的好处

2025-10-14
Python之什么叫面向对象

Python之什么叫面向对象

2025-10-14
Python创建线程

Python创建线程

2025-10-14
Python守护线程及作用

Python守护线程及作用

2025-10-13
Python sleep函数用法:线程睡眠

Python sleep函数用法:线程睡眠

2025-10-13