python生成器、迭代器、动态新增属性及方法是什么

您所在的位置:网站首页 动态编程技术 python生成器、迭代器、动态新增属性及方法是什么

python生成器、迭代器、动态新增属性及方法是什么

2023-04-15 18:05| 来源: 网络整理| 查看: 265

python生成器、迭代器、动态新增属性及方法是什么

本文讲解"python生成器、迭代器、动态新增属性及方法是什么",希望能够解决相关问题。

一、生成器1、生成器定义

在Python中,一边循环一边计算的机制,称为生成器:generator

2、生成器存在的意义

列表所有数据都在内存中,如果有海量数据的话将会非常消耗内存。

例如:仅需要访问前面几个元素,那后边所有空间就浪费了

如果列表元素按照某种算法推算出来,就可以在循环的过程中不断推算出后续的元素,这样就不必创建完整的 list ,从而节省大量的空间。

3、创建生成器方式一(生成器表达式)

生成器表达式很简单,只要把一个列表推导式的 [] 改成 () ,就创建了一个生成器(generator):

L = [x * x for x in range(10)]  #推导式 print(L) g = (x * x for x in range(10)) #加成括号就是生成器 print(g) # '''L是一个list,而g则是一个 generator'''4. 创建生成器方式二(生成器函数)1. 生成器函数如果一个函数中包含了yield关键字,那么这个函数就不再是一个普通的函数,调用函数就是创建了一个生成器(generator)对象生成器函数:利用关键字yield一次性返回一个结果,阻塞,重新开始2. 生成器函数的工作原理生成器函数返回一个迭代器,for循环对这个迭代器不断调用 __next__() 函数,不断运行到下一个 yield 语句,一次一次取得每一个返回值,直到没有 yield 语句为止,最终引发 StopIteration 异常yield 相当于 return 返回一个值,并且记住这个返回的位置,下次迭代时,代码从 yield 的下一条语句(不是下一行)开始执行send() 和 next() 一样,都能让生成器往下走一步(下次遇到 yield 停),但 send() 能传一个值,这个值作为 yield 表达式整体的结果

测试生成器工作原理(yield)

''' 如果一个函数中包含 yield 关键字,那么这个函数就不再是一个普通函数, 调用函数就是创建了一个生成器(generator)对象 生成器函数:其实就是利用关键字 yield 一次性返回一个结果,阻塞,重新开始 原理 1. 函数有了yield之后,调用它,就会生成一个生成器 2. 下次从下一个语句执行,切记不是下一行(tmp = yield i) 3. return在生成器中代表生成器种植,直接报错:StopIeratation 4. next方法作用:唤醒并继续执行 ''' def test():     print("start")     i = 0     while i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3