python-生成器
#!/usr/local/bin/python3 # -*- coding:utf-8 -*- ''' Generator 生成器:只有在调用的时候才会生成相应的数据 只记录当前位置 优点:1,可以有效节省内存,因为在不调用生成器的时候,生成器是不会生成数据的,并且生成器每次只生成一个数据 2,可以实现单线程并发 ''' # ----------斐波那契数列---------- def fib(max): n, a, b = 0, 0, 1 while n < max: # 将原来的 print(b) 改为 yield b 后,就做出了一个生成器 # yield 用来返回值,且保存了函数的中断状态 yield b a, b = b, a+b n += 1 # 此处的return 语句用来抛出异常的值 return "---此处为异常---" # 此时f就代表了一个生成器,并将6传入,其他什么都没干 f = fib(6) while True: try: # print(next(f))效果一样 print(f.__next__()) except StopIteration as e: print("exception:", e.value) break