Python

生成器本质

生成器是一个可迭代对象,自动实现了迭代器协议。

怎样生成生成器?

两种方法

  1. 函数里return改为yield
  2. 利用生成器表达式,将列表表达式的[]改为()即可

好处

节省内存

题外话

参考: https://www.cnblogs.com/allen2333/p/9373853.html
大部分内置函数,可以使用迭代器协议访问对象。因为生成器实现了迭代器协议,那么可以将生成器当作函数的参数。例如内置函数sum

sum(x ** 2 for x in range(0,4))

代替

# 列表表达式,立即计算结果,结果都放到列表里
sum([x ** 2 for x in range(0,4)])
原文地址:https://www.cnblogs.com/allen2333/p/9374232.html