初步理解yield作用时注意与return作用作对比
return关键字的作用:
- 返回运算结果
- 结束函数的执行
yield关键字的作用:
- 为next或send发送yield关键字后的数据
- 暂停生成器
- 接收send发送的数据并将其作为返回值返回
next函数的作用:
- 启动生成器
- 接收yield发送的yield关键字后的数据并将其作为返回值返回
send函数的作用:
- 启动生成器并发送数据给yield
- 接收yield发送的yield关键字后的数据并将其作为返回值返回
生成器:调用含有yield关键字的函数返回的对象
举例
def test():
a = 0
while a < 5:
print("======while========")
b = yield 0
print(b)
a += 1
test_0 = test()
next(test_0)
next(test_0)
next(test_0)
next(test_0)
next(test_0)
print("===========================")
test_ = test()
# test_.send(None) # next(test_)也可以
test_.send(10)
test_.send(9)
test_.send(8)
test_.send(7)
"""
运行结果:
======while========
None
======while========
None
======while========
None
======while========
None
======while========
===========================
======while========
10
======while========
9
======while========
8
======while========
7
======while========
Process finished with exit code 0
"""