生成器

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 只能往前走
原文地址:https://www.cnblogs.com/asdlo/p/9671207.html