Python 生成器和生成器表达式

一. 生成器

  什么是生成器?

  生成器实质就是迭代器.在python中有三种方式来获取⽣生成器:

    1. 通过⽣成器函数

    2. 通过各种推导式来实现生成器

    3. 通过数据的转换也可以获取生成器

def func():
    print("111") 
    return 222

ret = func()
print(ret)
结果:
111
222

  

def func():
    print("111")
    yield 222

ret = func() 
print(ret)
结果:
<generator object func at 0x10567ff68>

 yield 是分段执行这个函数体

 生成器函数在执行的时候返回生成器. 而不是直接执行此函数

 能向下执行的两个条件:
   __next__(), 执行到下一个yield
   send(), 执行到下一个yield, 给上一个yield位置传值

生成器的优点和特点

  优点: 节省内存, 生成器本身就是代码. 几乎不占用内存
  特点: 惰性机制, 只能向前. 不能反复

生成器表达式

    (结果 for循环 if)

  



posted @ 2018-12-12 21:38  冰哥泡  阅读(262)  评论(0编辑  收藏  举报