生成器

什么是生成器:

​ 生成的工具

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

如何实现生成器?

​ 但凡函数内部定义了的yield ,调用函数时,函数体代码不会执行

​ 会返回一个结果,该结果就是一个生成器

yield:

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

- yield 只能在函数内部定义
- yield 可以保存函数的暂停状态

yield 与 return :

  • 相同点:

    ​ 返回的个数都是无限制的

    不同点:

    ​ return 只能返回一次值,yield可以返回多次

    自定义range功能,创建一个自定义的生成器

    def my_range(start, end, move = 1):
        while start < end:
            yield start 
            start += move
    for i in my_range(1,5)
    	print(i)
    
posted on 2019-11-15 17:06    阅读(81)  评论(0编辑  收藏  举报