标签:code 实现类 开始 yield 迭代器 生成器 内存 UNC 获取
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 只能往前走
标签:code 实现类 开始 yield 迭代器 生成器 内存 UNC 获取
原文地址:https://www.cnblogs.com/asdlo/p/9671207.html