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
                    
                
                
            
        
浙公网安备 33010602011771号