概述
一、迭代器
我们知道 for 循环可以用于 Python 中的任何序列类型,实际上 for 循环可用于Python 中的任何可迭代类型。对于 Python 中所有会从左至右扫描对象的迭代工具而言都是如此,这些迭代工具包括了 for 循环、列表解析、in 成员关系测试以及 map() 内置函数等,他们都支持任何的可迭代类型。
”可迭代对象“ 的概念在 Python 中基本上和序列概念是一样的:如果对象是实际保存的序列,或者可以在迭代工具环境中(例如,for循环)一次产生一个结果的对象,就看做这个对象是可迭代的。总之,可迭代对象包括实际序列和按照需求而计算的虚拟序列(比如:range对象 和 生成器函数)。
1、迭代协议: next()
文件对象有一个方法 __next__() ,每次调用时,就会返回文件的下一行,到达文件末尾时, __next__() 会引发内置的 StopInteration 异常。
这个接口就是Python中的迭代协议:有一个 __next__() 方法的对象在迭代工具的依次迭代中会依次的前进到下一个结果,而在一系列结果的末尾时,则会引发StopInteration 异常。在Python中,任何这类对象都认为是可迭代的。任何这类对象也能以 for 循环或其他迭代工具遍历,因为所有的迭代工具内部工作起来都是在每次迭代中调用可迭代对象的 __next__() 方法,并且捕捉 StopInteration 异常来确定何时离开。
所以逐行读取文本文件的最佳方法就是根本不要去读取,而是让 for 循环在每次迭代中自动调用文件对象的 __next__() 方法从而前进到下一行。
最后
以上就是美好果汁为你收集整理的python中迭代器的基本方法有哪些_Python基础手册19——迭代器的全部内容,希望文章能够帮你解决python中迭代器的基本方法有哪些_Python基础手册19——迭代器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复