• python之生成器


    1.什么是生成器

    - 生成的工具
    - 生成器可以理解为一个”自定义“的迭代器。
    

    2.如何实现生成器

    # 但凡在函数内部使用yield,调用该函数时,函数体代码不会执行。
    # 而是返回一个生成器。
    def func1():
        print(1)
        yield 2
        
    func1() # 此时未执行,无输出
    res = func1()
    print(res)  # 输出为generator生成器对象。
    res.__next__() # 输出为(1)
    

    yield:

    • 每次执行到yield都会往生成器对象中添加一个值。
    • 只能在函数内部定义。
    • yield可以保存函数的暂停状态。

    return:

    • 函数遇到return将直接结束并返回。

    自定义迭代器:

    def func():
        print('准备下蛋')
        print('1---1号蛋')
       	yield '1号蛋'
        print('2---2号蛋')
        yield '2号蛋'
        print('3---3号蛋')
        yield '3号蛋'
        print('结束下蛋')
        
    res = func() #
    res.__next__()
    res.__next__()
    res.__next__()
    

    上述例子可发现:每次调用__next__方法时,程序会执行到下一个yield位置并暂停,直到下一次调用。

    def my_range(start, end, move=1):  # 简单的range实现
        while start < end:
            yield start
            start += move
    
  • 相关阅读:
    iPhone iPad发展史
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
    iOS 学习
  • 原文地址:https://www.cnblogs.com/Ghostant/p/11857413.html
Copyright © 2020-2023  润新知