python生成器的原理探究
- 更新时间:2021-06-22 10:52:15
- 编辑:容思涵
本站收集了一篇相关的编程文章,网友戴泽宇根据主题投稿了本篇教程内容,涉及到Python相关内容,已被627网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。
参考资料
- Python轻松学:爬虫、游戏与架站 PDF 电子书 / 23.7 MB / 王春艳 推荐度:
- Python3智能数据分析快速入门 PDF 电子书 / 3.1 MB / 李明江 张良均 推荐度:
- Python机器学习及实践:从零开始通往Kaggle竞赛之路 PDF 电子书 / 48.3 MB / 范淼,李超 推荐度:
- 《Python数据科学指南》配套资源 配套资源 / 88.35 KB / 印度 Gopi Subramanian 推荐度:
- 《机器学习:使用OpenCV和Python进行智能图像处理》代码 配套资源 / 1.58 MB / 迈克尔·贝耶勒 推荐度:
正文内容
码农之家最近发表了一篇名为《python生成器的原理探究》的py文章,实例讲的很实用,把错误代码改掉了,希望对网友有用。
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
1、概念
生成器是通过使用yield语句而不是return语句定义一个普通函数来创建的。如果函数包含至少一个yield语句,它就成为一个生成器函数。yield和return都将从函数返回一些值。函数在执行return时终止,而yield语句暂停函数,保存它的所有状态,然后在后续调用时继续执行。
2、组成
至少有一个yield语句。
返回一个对象(迭代器),但不立即开始执行。
记住连续调用之间的局部变量及其状态。
实现迭代协议。
3、原理分析
下面是使用生成器的类似内容。可以发现,调用__iter__()和__next__()都是由生成器自动处理的:
# Generator for next power of two. def NextPowTwo(max_ele): n = 0 while n < max_ele: yield 2 * n n += 1 raise StopIteration obj = NextPowTwo(20) print (obj.next()) print (obj.next()) print (obj.next()) print (obj.next())
在对于python学习的时候,容易把生成器与别的知识点混淆,其实想要判断有个最简单的方法,看看是否使用yield函数就知道了。
以上就是python生成器的原理探究,相信现在已经能够通过yield来明确生成器的使用了。同时我们可以发现,生成器在自动处理调用上是非常好用的。
相关教程
-
Python基于回溯法子集树模板解决找零问题示例
这篇文章主要介绍了Python基于回溯法子集树模板解决找零问题,简单描述了找零问题并结合具体实例形式分析了Python使用回溯法子集树模板解决找零问题的步骤、实现方法与相关操作技巧,需要的
发布时间:2019-08-26
-
python初学用什么工具
初学者学习Python,或者其他程序语言,最好的编程工具就是文本编辑器,不需要太花哨的功能,只要运行速度快,占用资源少,就OK。推荐给大家,那就是Sublime Text 3。轻量级,这一条就足矣。
发布时间:2019-07-10