不严谨的说 如果函数体内出现yield 那么该函数就可以说是生成器, 生成器也属于迭代器需要next()函数激活下一步。
def myGen():
print('生成器将被执行')
print('-'*30)
print('生成器已经执行第一步且被挂起,再次执行将会执行第二部')
yield 1
print('第一步执行结束 传出参数1')
yield 2
print('再次执行将会继续程序并传出参数2')
myG = myGen()
#生成器 属于特殊的迭代器 所以需要next()
next(myG)
next(myG)
next(myG) #抛出stopiteration异常
#for语句将会自动探测 stop异常
for i in myG:
print(i)