python代码:生成器

python代码:生成器

本人的话:原书只写了生成器,没有写生成器表达式。可能是书太古老了。还需要查资料看看生成器表达式,这样有关生成器的知识才算是完整的。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author:xiaxiaoyun
@file:test02.py
@time:2022-04-03 21:04
"""
"""
书《Python核心编程(第二版).pdf》,作者:Wesley J. Chun

协同程序是可以运行的独立函数调用,可以暂停或者挂起,并从程序离开的地方继续或者重新开始。在有调用者和(被调用的)协同程序也有通信。
举例来说,当协同程序暂停的时候,我们能从其中获得一个中间的返回值,当调用回到程序中时,能够传入额外或者改变了的参数,但仍能够从我们上次离开的地方继续,并且所有状态完整。

挂起返回出中间值并多次继续的协同程序被称为生成器。
从语法上讲,生成器是一个带yield语句的函数。
一个生成器能暂停执行并返回一个中间的结果(那就是yield语句的功能),返回一个值给调用者并暂停执行。当生成器的__next__()方法被调用的时候,它会准确地从离开地方继续(当它返回[一个值以及]控制给调用者时)。
当到达一个真正的返回或者函数结束没有更多的值返回(当调用__next__()),一个StopIteration异常就会抛出。
Python的for循环有next()调用和对StopIteration的处理。
"""
# # 例子1:一个简单的生成器
# de
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值