ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

揭秘yield:高效生成器的内存优化秘诀

揭秘yield:高效生成器的内存优化秘诀 yield 属于关键字这一类, 它的主要作用就是允许一个函数去返回属于生成器对象的东西, 而并非单纯地返回某个数值。要知道, 生成器对象其实是迭代器当中的一种特殊存在方式, 这种对象能够在被需要的时候依次产生出多个具体的值, 而不必选择一次性地把所有的数据都存在内存里。通过采取这种方式来达到目的, 最终能够实现节省内存空间的效果, 并且还可以让整体的运行效率得到提升。使用 yield 的函数被称为生成器函数它的语法格式如下def generator_function():# 生成器函数的代码while True:# 生成器函数的逻辑yield value # 返回一个值当人们去调用那个叫做生成器函数的东西的时候, 他们是可以使用那种名为 for 的循环结构, 或者也使用一下 next() 这个方法的, 通过这么做, 他们能够遍历整个对象里面存储的所有值又或者只是单独地去获取到那些值。比如说下面这个样子:# 创建一个生成器对象g generator_function()# 使用 for 循环遍历生成器对象中的值for x in g:print(x)# 输出# 1# 2# 3# 使用 next() 方法获取生成器对象中的下一个值print(next(g))# 输出# 4print(next(g))# 输出# 5print(next(g))# 输出# StopIteration # 迭代结束注意啊, 在调用那个 next() 方法的时候, 假如情况是, 没有更多的值可以去进行了迭代, 那么, 这种情况之下, 是会抛出异常这个事物的。那个生成器函数, 它是除了那个yield这种关键字之外, 还有别的, 像那些方法和一些属性之类的, 这些东西, 例如:
返回列表