# 自定义生成器函数的过程
# 在函数内部,有很多 yield 返回中间结果;
# 程序向函数取值时,当函数执行到第1个yield时,会暂停函数运行并返回中间结果;
# 当主程序再次调用函数时,函数会从上次暂停的位置继续运行,当遇到第2个yield,会再次暂停运行函数并返回数据;
# 重复以上操作,一直到函数内部的yield全部执行完成为止
# 生成器函数
# return: 函数执行的终止
# yield: 表示函数执行的暂停
def func02():
a = 1
yield a
b = "hello"
yield b
c = [1, 2]
yield c
gen2 = func02()
print("gen2:", gen2)
# <generator object func02 at 0x7f94da357a98>
print(gen2.__next__()) # 1
print(gen2.__next__()) # hello
for item in gen2:
print("for:", item) # [1, 2]
# gen2.__next__() # 报错
python---自定义生成器函数(yield)
最新推荐文章于 2023-08-02 11:31:26 发布