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

巨蟒python全栈开发-第12天 生成器函数 各种推导式 yield from

时间:2018-12-12 00:20:03      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:for   结果   全栈   内存   span   帮助   ext   turn   bsp   

一.今日主要内容总览(重点)

1.生成器(目的:帮助我们创建对象)
(1)生成器的本质就是迭代器
(2)一个一个的创建对象
(3)创建生成器的方式:
1.生成器函数
2.通过生成器表达式来获取生成器
3.类型转换(看不到)

2.生成器函数(重点)
(1)生成器函数中包含 yield关键字,返回数据和return差不多
return会立即结束和这个函数的执行
yield 可以分段的执行一个函数

(2)大坑(五星重点):
  生成器函数在执行的时候返回生成器,而不是直接执行次函数

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

(4)所有的生成器都是迭代器,都可以直接使用for循环
都可以使用list()函数来获取到生成器内所有的数据

(5)生成器中记录的是代码而不是函数的运行
def func():
print(‘我的天哪‘)

yield ‘宝宝‘
gen=func() #创建生成器,此时运行会把生成器函数中的代码记录在内存
当执行到__next__(),运行此空间中的代码,运行到yield结束

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

3.各种推导式(诡异)
列表推导式 [结果 for 循环 if]
字典推导式 {结果(k,v) for 循环 if}
集合推导式 {结果(k) for 循环 if}

4.生成器表达式(重点)
(结果 for循环 if)

二.今日内容大纲

1.生成器函数

2.各种推导式

3.yield from

三.内容详解

1.生成器函数

2.各种推导式

3.yield from

 

巨蟒python全栈开发-第12天 生成器函数 各种推导式 yield from

标签:for   结果   全栈   内存   span   帮助   ext   turn   bsp   

原文地址:https://www.cnblogs.com/studybrother/p/10105570.html

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