我是靠谱客的博主 义气电灯胆,最近开发中收集的这篇文章主要介绍对生成器的理解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

迭代器:
对于可迭代对象使用内置函数iter()获取迭代器对象。
迭代器对象通过next()方法来访问里面的元素
当容器中没有可访问的元素后,next()方法将会抛出一个StopIteration异常终止迭代器。

列表生成式 例:[x**2 for x in range(n)]
生成器表达式:通列表解析语法,把列表解析的[ ]换成(),返回迭代器

生成器函数:generator
在函数中如果出现了yield关键字,那么这个函数就是生成器函数
在生成器中,如果没有return,则默认执行到函数完毕时返回StopIteration

在python2中有next方法,生成器函数中return后面不能有值
在python3中没有next方法,生成器函数中return后面如果有值,那么这个值为StopIteration异常的说明,不是程序的返回值

生成器支持的方法

close() 手动关闭生成器函数,后面的调用会直接返回StopIteration异常。
send() 生成器函数最大的特点是可以接受外部传入的一个变量,并根据变量内容计算结果后返回首先要通过g.send(None)或者next启动生成器函数,并执行到第一个yield语句结束的位置。
throw() 用来向生成器函数送入一个异常,可以结束系统定义的异常,或自定义的异常。

想了解区别和联系可参考—>迭代器与生成器的区别和联系

最后

以上就是义气电灯胆为你收集整理的对生成器的理解的全部内容,希望文章能够帮你解决对生成器的理解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部