生成器是逐次产生出数据集合中数据项元素的函数。
在Python语言中利用生成器不必创建完整的数据集合,从而节省存储空间。
生成器函数与普通函数的差别在于:
① 生成器函数用yield关键字生成数据项,而不是用print输出数据项
②普通函数按顺序执行,遇到return语句或最后一行就返回,而生成器函数在每次调用_ _next_ _()(注:为了看清楚是两个下划线,特地在中间打了空格,打命令时不可以中间有空格)方法的时候才执行,遇到yield语句返回,再次执行是从上次返回的yield语句继续运行
理论太多可能还是不太理解,下面是关于生成器函数的例子帮助理解:
代码:
def generator_even():
for i in range(1,11):
print('第%d步:' % i)
yield i*2
g=generator_even()
print(g.__next__())
print(g.__next__())
print(g.__next__())
print(g.__next__())