All is well 3 idiots

AC小小常

【Python面向对象】(11)生成器

介绍

  1. 是使用一种普通函数语法定义的迭代器

  2. 包含yield语句的函数都被称为生成器

  3. 不使用returen返回一个值,而是每次可以生成多个值,每次一个

  4. 每次使用yield生成一个值后,函数都将冻结,即在此停止执行

  5. 被重新唤醒后,函数将从停止的地方开始继续执行

"""
生成器:也是一种迭代器,所以__next__,next(),for循环都能遍历
"""


def pow():
    yield 1
    yield 2
    yield 3
    yield 4
    yield 5


def pow_number():
    return (x * x for x in [1, 2, 3, 4, 5])


def pow_number2():
    for x in [1, 2, 3, 4, 5]:
        yield x * x


if __name__ == "__main__":
    for i in pow():
        print(i)
    print("------------------")
    for i in pow_number2():
        print(i)
    print("------------------")
    for i in pow_number():
        print(i)

 

posted on 2020-04-15 20:43  AC小小常  阅读(134)  评论(0编辑  收藏  举报

导航