一个带有 yield 的函数就是一个 generator,它和普通函数不同,生成一个 generator 看起来像函数调用,但不会执行任何函数代码,直到对其调用 next()(在 for 循环中会自动调用 next())才开始执行。
defmy_gen_func(my_list):
a =8print("yield前")for i in my_list:yield i
print("内部和yield关联在一起的东西开始运行{}".format(a+i))print("yield后")print("yield无关")print("end")#
my_generator =[i for i inrange(5)]for ele in my_gen_func(my_generator):print(ele)#####################################yield前
0
内部和yield关联在一起的东西开始运行8yield后
1
内部和yield关联在一起的东西开始运行9yield后
2
内部和yield关联在一起的东西开始运行10yield后
3
内部和yield关联在一起的东西开始运行11yield后
4
内部和yield关联在一起的东西开始运行12yield后
yield无关
end