迭代器
1.双下方法:含有双下划线的方法就叫做双下方法,如__next__
2.可迭代的(iterable):能被for循环的就是可迭代的,其中必须含有__iter__这方法
例如:print(‘__iter__’ in dir([])) 输出为TRUE
3.迭代器:必须含有__iter__和__next__方法的变量,就叫做迭代器,可被for循环,好处就是可以不用一次把数据全部生成在内存当中,需要一个就可以调用一个,节省内存,提高效率
“[]”是可迭代对象,同时也是迭代器
实际上,迭代器能被for循环,是调用的迭代器的__next__方法,如下图所示:
生成器
1. 生成器函数:在常规函数中, 返回关键词使用yield,而不是使用return,yield语句一次返回一个结果,挂起函数,以便下次重离开的地方继续执行,一个包含yield关键词的函数就是生成器函数
2. yield和return的区别:return是返回结果后函数就执行完毕退出了,而调用包含yield的函数是返回了一个可迭代对象,每次获取这个可迭代对象的值,就能获取新的返回值,直到函数全部执行完毕


例子:实时监听文件写入(在读一行内容的时候可添加.strip()去除空行)

未经允许不得转载:天府数据港官方信息博客 » 【学习】Python迭代器和生成器的初步认识
客官点个赞呗! (0)