pythonyield详解_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

你可能感兴趣的:(pythonyield详解)