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