VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Python基础教程 >
  • python基础教程之生成器

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/pythonxin3721/


生成器

什么是生成器?

生成器本质上是一个自定义的迭代器,本质上是一个迭代器

如何实现生成器?

但凡在函数内部定义了的yield,调用函数时函数代码不会执行,会返回一个结果,该结果就是一个生成器。

yield

只能在函数内部定义

def func():
    print('from func')
    yield 1
res = func()
print(res.__next__())		# 当我们通过.__next__()取值时,才会执行函数体代码

每次yield都会往生成器对象中添加一个值

yield可以保存函数的暂停状态

def func():
    print('准备开始下蛋……')
    print('--->柴鸡蛋1')
    yield '柴鸡蛋1'
    print('--->柴鸡蛋2')
    yield '柴鸡蛋2'
    print('--->柴鸡蛋3')
    yield '柴鸡蛋3'
res = func()

while True:
    try:                        # 捕获StopIteration异常
        print(next(res))
        print(next(res))
        print(next(res))
        print(next(res))        
    except StopIteration:       # 抛出StopIteration异常
        break

yield与return的区别

相同点:返回值的个数都是无限制的

不同点:return只能返回一个值,yield可以返回多个值

相关教程