码迷,mamicode.com
首页 > 编程语言 > 详细

Python 生成器和生成器表达式

时间:2018-12-12 22:09:08      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:表达式   object   end   __next__   内存   fun   转换   pre   表达   

一. 生成器

  什么是生成器?

  生成器实质就是迭代器.在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)

  



Python 生成器和生成器表达式

标签:表达式   object   end   __next__   内存   fun   转换   pre   表达   

原文地址:https://www.cnblogs.com/zhaoyubing/p/10111189.html

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