python中只要函数内部包含有yield关键字,那么函数名()的到的结果就是生成器,并且不会执行函数内部代码,通过__next__()或者next()函数可以获取值,每调用一次,都会取出一个值,无值可取时会报StopIteration错
def fun():
for i in range(10):
yield i
f = fun()
print(type(f)) # <class 'generator'>
f.__iter__()
f.__next__()
print(next(f))