python-15-生成器函数

生成器 #F44336 generator

enter description here

enter description here
enter description here

enter description here
enter description here
enter description here
enter description here

def foo(): print(1) yield 2 # 暂停当前函数执行 print(3) yield 4 print(5) return 6 # 函数返回,yield结束 yield 7

enter description here

计数器

def counter(): i = 0 while True: i += 1 yield i def inr(): for x in counter(): yield x g = inr() next(g)

enter description here
enter description here

enter description here
enter description here
enter description here

生成器的应用

enter description here

enter description here

enter description here

def inc(): def counter(): i = 0 while True: i += 1 yield i c = counter() def inner(): return next(c) return inner g =inc() ########################## def inc(): def counter(): i = 0 while True: i += 1 yield i c = counter() def inner(): return next(c) return inner g =inc()

计数器
enter description here

斐波拉契数列
enter description here
enter description here

def fib(): a = 1 b = 1 while True: yield i a, b = b, a+b g = fib() for i in range(1,6): print(i, next(g))

生成器交互

enter description here
enter description here

enter description here
enter description here

enter description here
enter description here

def inc(): def counter(): i = 0 while True: i += 1 response = yield i if response is not None: i = response c = counter() # def inner(reset=False): # return c.send(0) if reset else next(c) # return inner return lambda reset=False : c.send(0) if reset else next(c) g =inc()

协程Coroutine

enter description here

一个线程中交替执行
enter description here

enter description here

lambda 不支持 yield
enter description here
enter description here
enter description here

def foo(): yield from [1, 2, 3, 4, 5] # yield from range(5) # for i in range(5): # yield i

__EOF__

本文作者何时&明月
本文链接https://www.cnblogs.com/kiyalone/p/16171117.html
关于博主:当你发现自己的才华支撑不起野心时,就请安静下来学习吧!
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   何时&明月  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示