本文共 998 字,大约阅读时间需要 3 分钟。
# -*- encoding: utf-8 -*-import time'''5、 第3章_生成器关键:1 生成器本质: 是一个函数,按照顺序返回值,执行直到被通知输出一个值,然后继续执行直到再次被通知输出值特点: 允许输入序列中的每个值在需要时才计算作用: 节省内存特征: 函数内部有yield语句, yield语句不会终止函数的执行,执行会暂时停止直到调用代码重新恢复生成器2 next函数作用: 能够让生成器(任何带有__next__方法的对象都称为next)请求它的下一个值迭代终止的方式: python2中使用raise StopIteration(42) 等同于python 3中使用return 42 参考:Python高级编程'''def fibonacci(): numbers = [] while True: if len(numbers) < 2: numbers.append(1) else: ''' 关键: 这里加入前面两个元素的累加和,然后删除最老的数据,则数组中一直保留两个元素 ''' numbers.append(sum(numbers)) numbers.pop(0) yield numbers[-1] time.sleep(1)def validFibonacci(): for value in fibonacci(): print valuedef useNext(): gen = fibonacci() while True: try: result = next(gen) print result except StopIteration: print "StopIteration exception" breakdef process(): # validFibonacci() useNext()if __name__ == "__main__": process()
转载地址:http://jvlfn.baihongyu.com/