def fun1(batch):
if batch:
return range(10)
else:
for item in range(10):
yield item
a = fun1(True)
for v in list(a):
print(v)
print("-------------")
b = fun1(False)
for v in list(b):
print(v)
直觉上最后的结果分割线之上也是能输出 0~9 的,但是实际上是空,把 yield 改成 return 就好了,这是什么原因呢?