yield是生成器中的一个关键字,他的作用和返回差不多,但是又有很大的区别;简单理解:yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后开始。
def yield_t(n):
for i in range(n):
yield i
y = yield_t(5)
print(next(y))
print(next(y))
print(next(y))
print(next(y))
print(next(y))
from collections import Iterable,Iterator
print(isinstance(y,Iterator))
print(isinstance(y,Iterable))
print("y中的值被打印完了")
for i in y:
print(i)
print("y中的值被打印完了")
输出:
0
1
2
3
4
True
True
y中的值被打印完了
y中的值被打印完了