一.生成器 什么是生成器,生成器的实质就是迭代器 在python中有三种方式来获取生成器: 1.通过生成器函数 2.通过各种推导式来实现生成器 3.通过数据的转换也可以获取生成器 1 def func() 2 print("111") 3 yield 222 4 ret = func() 5 print(ret) 6 7 结果: 8 <generator object func at 0x10567ff68> send方法和__next__() send和__next__(…
day13 python   一.生成器     生成器的本质就是迭代器     生成器的特点和迭代器一样. 取值方式和迭代器一样(__next__())     由生成器函数或生成器表达式来创建     其实就是手写的迭代器   二.生成器函数     函数中如果有yield, 那么这个函数就是生成器函数. 调用生成器函数: 函数名(), 得到的是生成器, 这个时候不执行     yield: 相当于return可以返回数据, 但是不会结束函数, 会往下走, 分段执行函数,     rst._…
生成器: 生成器的本质就是迭代器 生成器一般由生成器函数或者生成器表达式来创建,其实就是手写的迭代器 def func(): print('abc') yield 222 #由于函数中有了yield ret = func() print(ret) #我们执行函数的时候实际上是获取生成器 结果: <generator object func at 0x10567ff68> 这个叫func的生成器的内存地址0x10567ff68 在Python中可以通过三种方式来获取生成器: 1.通过生成器函数…
一.昨日内容回顾 惰性机制(只有执行__next__()才会取值)二.今日主要内容 1.生成器 生成器:本质是迭代器,写法和迭代器不一样.用法和迭代器一样. ※生成器记录的是代码 2.生成器函数 生成器函数: 在函数中return换成yield. 这个函数就是生成器函数 def func(): yield yield from iterable 相当于 for el in iterable: yield el 取值: gen.__next__() 下一个 gen.send() 可以给上一个yie…
python 全栈开发 1.生成器函数 2.推导式 3.生成器表达式 一.生成器函数 1.生成器: 生成器的本质就是迭代器 (1)生成器的特点和迭代器一样.取值方式和迭代器一样(__next__(), send(): 给上一个yield传值). (2)生成器一般由生成器函数或者生成器表达式来创建 (3)其实就是手写的迭代器 2.生成器函数: (1)和普通函数没有区别. 里面有yield的函数就是生成器函数. (2)生成器函数在执行的时候. 默认不会执行函数体. 返回生成器 (3)通过生成器的__…
生成器 函数体内有yield选项的就是生成器,生成器的本质是迭代器,由于函数结构和生成器结构类似,可以通过调用来判断是函数还是生成器,如下: def fun(): yield "我是生成器" print(fun()) # 打印内容如下: <generator object fun at 0x0000000002160ED0> 生成器的优点就是节省内存.Python获取生成器的二种方式: 通过函数获取生成器 通过生成器推导式创建生成器 通过函数获取生成器 def fun():…
生成器 首先我们来看看什么是个生成器,生成器本质就是迭代器 在python中有三种方式来获取生成器 1.通过生成器函数 2.通过各种推到式来实现生成器 3.通过数据的转换也可以获取生成器 首先,我们先看一个很简单的函数: 1 2 3 4 5 6 7 8 9 10 11 def func():       print(11)     return 22   ret = func() print(ret)   # 运行结果: 11 22 将函数中的return换成yield就是生成器 1 2 3 4…
目录 1 生成器(函数的变异) 2 推导式 3 递归 1 生成器(函数的变异) 判断一个函数是否是生成器函数:只需看函数内部是否有yield # 生成器函数(内部是否包含yield) def func(): print('F1') yield 1 print('F2') yield 2 print('F3') yield 100 print('F4') # (只要有yield)函数内部代码不会执行,返回一个 生成器对象 . v1 = func() # 生成器是可以被for循环,一旦开始循环那么函…
1.迭代器 # ### 迭代器 """能被next调用,并不断返回下一个值的对象""" """ 特征:迭代器会生成惰性序列,它通过计算把值依次的返回,一边循环一边计算而不是一次性得到所有数据 优点:需要数据的时候,一次取一个,可以大大节省内存空间.而不是一股脑的把所有数据放进内存. """ # 1.可迭代对象 """ 如果一个数据类型其中的成员包含了__it…
一.生成器和生成器函数1.生成器和生成器函数的概念 1.生成器的本质是迭代器 2.函数中包含yield,就是生成器函数 2.生成器函数的写法 def func(): a =10 yield 20 gen = func() #没有执行,而是生成一个生成器 普通函数和生成器函数的不同 1.普通函数名()表示函数的的执行 2.生成器函数名()不是函数的执行,而是生成一个生成器 yield和return的不同 1.retun表示返回,同时函数执行终止,return之后的代码不会执行 2.yield也表示…