生成器

  • 生成器是一种使用普通函数语法定义的迭代器
    • 生成器是特殊的迭代器
  • 包含yield语句的函数都被称为生成器
    • 函数中只要包含了yield关键字,该函数就是一个生成器
  • 不使用return返回一个值,而是生成多个值,每次一个
  • 每次使用yield生成一个值后,函数都将冻结,即在此停止执行
  • 被重新唤醒后,函数将从停止的地方开始继续执行
  • 一个生成器函数中可以包含一个或多个yield关键字
  • 创建了一个生成器后,可以使用next()方法获取容器中每个元素,也可以通过for循环来迭代获取每个元素

举例:

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


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__':
    rest = pow()
    # print(next(rest))
    # print(next(rest))
    # print(next(rest))
    # print(next(rest))
    # print(next(rest))
    # for i in rest:
    #     print(i)

    rest1 = pow_number2()
    print(rest1.__next__())
    print(next(rest1))
    # print(rest1.__next__())
    # print(rest1.__next__())
    # print(rest1.__next__())
    # print(rest1.__next__())
    # for i in rest1:
    #     print(i)
Python3

迭代器

2019-10-9 6:17:41

Python3

可迭代对象,迭代器,生成器的区别和关系

2019-10-9 7:13:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索