码迷,mamicode.com
首页 > 其他好文 > 详细

生成器

时间:2018-09-18 22:35:29      阅读:167      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!