本篇文章410字,读完约1分钟
函数f,f返回一个动态计算的列表(无论是数学计算还是逻辑读取和格式化),列表将非常大(无论是固定的还是随着输入参数的增加而增加)。此时,我们希望在调用这个函数并使用迭代器循环时,一个接一个地得到每个列表元素,而不是直接得到一个完整的列表来节省内存。这时,产量是非常有用的。
以斐波那契函数为例,我们通常希望从n:
上面的fab函数从参数max返回一个包含最大元素的列表。当这个最大值很大时,它将占用大量内存。
通常,我们这样使用它,例如:
这样,我们实际上变成了一个1000元素列表:f,然后我们使用这个f。
现在,让我们换个方式:
因为我们实际使用的是列表的遍历,也就是列表的迭代器。然后我们可以让这个函数fab一次只返回一个迭代器和一个计算结果,而不是一个完整的列表:
这样,每次我们调用fab函数时,就像这样:
或者下一个函数,实际上,操作模式是每次在yield中断,并返回一个结果,然后在再次调用时恢复中断。
来源:搜狐微门户
标题:云计算开发学习笔记:Python3 什么情况下需要使用 yield?
地址:http://www.shwmhw.com/shxw/12881.html