yield 有什么用?

python 就像每一个学电脑的人都想玩一下ps一样的语言

yield 最大的用处就是节省资源,利用有限的资源做更多的事情,怎么做到的呢?

使用yield关键字的语句,计算得到的资源不会存储在内存中,而是返回一个对象,我们可以通过使用这个对象(迭代对象)来获取数据,用多少就拿多少,极大的提高了程序的性能。

这么说,你肯定还有些不解,举个现实生活中的例子你就明白了。

你家今年大丰收,收了几千斤粮食,你把粮食装进粮仓。你要吃粮食,就去放粮食出来,你不会一下子全部放出来堆在你家的屋子里是吧。就是你这一个月吃多少就放多少!这个粮仓就是一个对象,这里要注意一下,这个例子确实能帮助理解yield,但不确切,因为这个粮仓是反复利用的,他不会根yield对象一样,只能用一次,用完就没了。

有了这个形象的说法,我们就可以进一步的了解它的用法了

yield 和return用法相似,但又不一样,return会停止后面的代码运行或者跳出你的循环代码块,而yield后面的语句会接着运行。

yield 返回的对象是一次性的,循环一次,里面就少一个,直到对象里没有数据为止。

这样的神操作能极大的提高程序的运行效率,不过随着时代的发展,还进化出了另一个概念,那就是协程,是提高工作效率的,是典型的异步操作范畴,这里不展开讲,我相信我们都能往这个方向继续学习。

本文创作之前有写过一篇文章,是说这个生成器的原理和用法的,这里直链接过去哈。

这篇文章是我后来对这个yield的新的认识,也是我自己的理解,每个人都有自己的理解,但也有可能不是恒正确的,如果我后面有什么新的认知,我一定会过来推翻它。

学习是一种态度。
本文在阅读python参考手册时写成。


参考文献

相关文章