找工作面试过了都不要,慢慢好多东西都忘了,为知笔记也用不了,写些笔记留给自己看吧,果然学习是很快乐的。
首先理清它们间关系是,可迭代对象>迭代器>生成器
https://foofish.net/iterators-vs-generators.html
可迭代对象包含两类,集合数据和迭代器
判断的方法 for循环判断
或者 isinstance([],Iterable) iter()方法是否返回一个迭代器
迭代器,迭代器能使用next()方法,本质是实现了__iter__和__next__方法
isinstance([],Iterator) 或者使用next()方法
生成器
python中一边计算一边循环一边计算的机制,称为生成器
生成器是在函数中加了关键字yield,一个函数中可以有多个yield,通常用于协程
生成器特有的一个方法send(),因为它也是迭代器,所以next()就不提了
https://www.cnblogs.com/yinheyi/p/8087822.html