教程集 www.jiaochengji.com
教程集 >  Python编程  >  Python入门  >  正文 Python之可迭代对象、迭代器、生成器

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

发布时间:2021-12-09   编辑:jiaochengji.com
教程集为您提供Python之可迭代对象、迭代器、生成器等资源,欢迎您收藏本站,我们将为您提供最新的Python之可迭代对象、迭代器、生成器资源

Python可迭代对象(Iterable) 

Python中经常使用for来对某个对象进行遍历,此时被遍历的这个对象就是可迭代对象,像常见的list,tuple都是。如果给一个准确的定义的话,就是只要它定义了可以返回一个迭代器的__iter__方法,或者定义了可以支持下标索引的__getitem__方法,那么它就是一个可迭代对象。

Python迭代器(iterator) 

迭代器是通过next()来实现的,每调用一次他就会返回下一个元素,当没有下一个元素的时候返回一个StopIteration异常,所以实际上定义了这个方法的都算是迭代器。可以用通过下面例子来体验一下迭代器:

生成器(Generators) 

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

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

相关推荐:《Python视频教程》

定义迭代器 

下面一个例子——斐波那契数列

<pre class="brush:php;toolbar:false"># -*- coding: cp936 -*- class Fabs(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):         return self     def next(self):         if self.n < self.max:             r = self.b             self.a, self.b = self.b, self.a   self.b             self.n = self.n   1             return r         raise StopIteration() print Fabs(5) for key in Fabs(5):     print key</pre>

结果

<pre class="brush:php;toolbar:false"><__main__.Fabs object at 0x01A63090> 1 1 2 3 5</pre>

您可能感兴趣的文章:
python迭代器与生成器用途是什么
python中可迭代对象是什么
python中的迭代器有什么用
一篇文章教你如何使用Python生成器
干货推荐:Python迭代器和生成器最易懂、最全面的文章
Python之可迭代对象、迭代器、生成器
Python3 迭代器与生成器
零基础学python之迭代器
python中迭代什么意思
python迭代器如何实现

[关闭]
~ ~