Python yield详解

import random

def yield_test(n):
    for i in range(n):
        yield call(i)
        print("i=",i)
    #做一些其它的事情
    print("do something.")
    print("end.")

def call(i):
    return i*2

def yield_randint(count):
    i = 0
    while i < count:
        i += 1
     print('i =', i) yield random.randint(1, 10) if __name__ == '__main__': #example 1 yt = yield_test(5) for i in yield_test(5): print(i,",") #example 2 # rand = yield_randint(10) #create a generator # for num in rand: # print(num)

  

 

example 1执行结果:

0 ,
i= 0
2 ,
i= 1
4 ,
i= 2
6 ,
i= 3
8 ,
i= 4
do something.
end.

example 2执行结果:

i = 1
7
i = 2
9
i = 3
5
i = 4
2
i = 5
8
i = 6
1
i = 7
5
i = 8
6
i = 9
5
i = 10
2

posted @ 2020-06-21 11:19  Fmaj-7  阅读(193)  评论(0)    收藏  举报