Yield个人理解主要用于大数量时节省内存使用
例如:
# 省内存写法
def foo(num):
print("starting...")
while num < 10000:
num=num+1
yield num
return
for n in foo(0):
print(n)
VS
# 不省内存写法
for n in range(10000):
print(n)
Yeild有两个函数next(foo())和foo().send()
例如:
def foo():
print("starting...")
while True:
res = yield 4
print("res:",res)
g = foo()
print(next(g))
print("*"*20)
print(g.send(7))
网友评论