目前对生成器的理解.generator
yield. 只要含有yield关键字的都是生成器函数。yield不能和return共用,且需要写在函数内部。用next一步一步的执行 生成器函数:在执行的过程之后会得到一个生成器作为返回值。# 生成器是一个特殊的迭代器。(本质上就是自己写的函数) %s %i
(自己外部控制)
可迭代的---可迭代协议(含有iter方法) 迭代器里面的数据只能从头到尾取一次。
生成器tedian:1.调用函数时函数不执行,返回一个生成器值
2.每次使用next方法时会取到一个值,直到取到最后一个值,再执行就会报错
从生成器中取值的几种方法:
1.for循环 2.next 3.数据类型的强制转换(比较占内存)
生成器函数的进阶:send #send获取下一个值的效果跟next效果一样。 只不过在获取下一个值的同时,给上一个yield值的位置传递一个数据
注意:第一个是要生成器时室next获取下一个值。
最后一个yield不能接受外部的值。