- 是由函数与
yield
关键字创造出来的写法,在特定情况下,可以帮助我们节省内存 - 执行一个生成器函数,函数体代码不会运行,会返回一个生成器对象
- 要想执行函数体内容,就需要使用这个生成器对象来执行
python
def func():
print(123)
yield 3456
print(456)
yield 666
print(789)
# return None,程序运行到此处会报错,stopIteration,代表生成器函数执行完毕了
v1 = func()
n = next(v1)# 将进入生成器函数内部来执行其代码,会在第一个yield处暂停下来,n接收3456
n = next(v1)# 从第一个yield下面代码开始执行,遇到下一个yield处暂停下来
- 一般情况下,使用for循环来调用生成器
python
def func():
print(123)
yield 3456
print(456)
yield 666
print(789)
data = func()
for item in data:
print(item)# 会帮助过滤错误