python中的yield
如下代码:
def f():
print(“ok1”)
f()
打印结果是:ok1
def f():
print(“ok1”)
yeild
f()
这样结果将不会打印
需要将代码更改为
def f():
print(“ok1”)
yeild
ret=f()
next(ret)
打印结果:ok1
next是执行yield的方法。走yield方法会返回去,如下图:
如果出现yield下边继续打印print需要继续加一个next
def f():
print(“ok1”)
yeild
print(“ok2”)
yeild
ret=f()
next(ret)
next(ret)
注意yield是有返回值的
def f():
print(“ok1”)
yeild 5
ret=f()
num=next(ret)
print(num)
打印的结果:ok1
5
使用send还可以发送参数
def f():
print(“ok1”)
count=yeild 5
print(count) #10
ret=f()
next(ret)
x=ret.send(10)
print(X) # 5
知识点 :走到yield会进行停止,使用next()方法进行继续执行