"""
生成器的本质就是迭代器,在处理大数据量时可以分批处理,优化内存
创建方式:
1.生成器函数:yield
2.生成器表达式:(数据 for循环 if判断(如果需要)
生成器执行的时候不会执行函数,得到的是生成器。
yield:只要函数中出现了这个关键字,该函数就是生成器
作用:
1.可以返回值
2.可以分段执行函数
"""
def func():
print(123)
yield 999
print(456)
yield 888
fn = func()
print(fn)
res = fn.__next__()
print(res)
res = fn.__next__()
print(res)
gen = (i for i in range(10) if i % 2 == 0)
print(gen)
for item in gen:
print(item)
def order():
lst = []
for i in range(10000):
lst.append(f'数据{i}')
if len(lst) == 10:
yield lst
lst = []
data = order()
print(data.__next__())
print(data.__next__())