生成器

Posted asdlo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器相关的知识,希望对你有一定的参考价值。

1.什么是生成器?实质上它就是迭代器.

def func():
    print("生成器")
    yield 123

 ret = func()
 print(ret) 

由于函数中存在了yield. 那么这个函数就是一个生成器 函数. 这个时候. 我们再执行这个函数的时候. 就不再是函数的执?行了. 而是获取这个生成器.

2.生成器如何使用呢? 生成器的本质是迭代器. 所以. 我们可以直接执行__next__()来执行.

def func():
    print("你好啊,我叫男孩")
    yield "返回值"    # return 和yield都可以返回数据

ret = func()   # 结果是generator ,是一个生成器
print(ret)
s = ret.__next__() # 当执行到__next__()的时候, 函数才真正的开始执行
print("接受到的是", s)

3.send() 也可以实现类似__next__()的效果, send()可以给上一个yield传值

send(),给上一个yield赋值.

4. 生成器的特点:

   1  节省内存, 几乎不占用内存
2 惰性机制
3 只能往前走

 



以上是关于生成器的主要内容,如果未能解决你的问题,请参考以下文章

Apollo Codegen 没有找到生成代码的操作或片段

前端开发工具vscode如何快速生成代码片段

前端开发工具vscode如何快速生成代码片段

vscode代码片段生成vue模板

VS Code配置snippets代码片段快速生成html模板,提高前端编写效率

vs 2010代码片段