Python基础阶段:生成器函数
1 # l = [i for i in range(1, 10000000) if i % 2 == 0] 2 # l = (i for i in range(1, 10000000) if i % 2 == 0) 3 # 4 # print(next(l)) 5 # print(next(l)) 6 # print(l.__next__()) 7 # 8 # for i in l: 9 # print(i) 10 11 12 13 14 # 生成器的创建方式2 15 # yied, 可以去阻断当前的函数执行, 然后, 当使用next()函数, 或者, __next__(), 都会让函数继续执行, 然后, 当执行到下一个 yield语句的时候, 又会被暂停 16 # def test(): 17 # print("xxx") 18 # yield 1 19 # print("a") 20 # 21 # yield 2 22 # print("b") 23 # 24 # yield 3 25 # print("c") 26 # 27 # yield 4 28 # print("d") 29 # 30 # yield 5 31 # print("e") 32 33 # 34 # def test(): 35 # for i in range(1, 9): 36 # yield i 37 # 38 # g = test() 39 # print(g) 40 # 41 # print(next(g)) 42 # print(next(g)) 43 # print(next(g)) 44 # print(next(g)) 45 # print(next(g)) 46 47 48 # def test(): 49 # # print("xxx") 50 # res1 = yield 1 # "ooo" 51 # print(res1) 52 # 53 # res2 = yield 2 54 # print(res2) 55 # 56 # g = test() 57 # 58 # # print(g.__next__()) 59 # # print(g.__next__()) 60 # # print(g.send("ooo")) 61 # print(g.send(None)) 62 # print(g.send(666)) 63 64 65 # 66 # def test(): 67 # yield 1 68 # print("a") 69 # 70 # yield 2 71 # print("b") 72 # 73 # yield 3 74 # print("c") 75 # 76 # return 10 77 # 78 # 79 # 80 # g = test() 81 # 82 # print(g.__next__()) 83 # print(g.__next__()) 84 # 85 # g.close() 86 # 87 # print(g.__next__()) 88 # # print(g.__next__()) 89 90 91 92 def test(): 93 yield 1 94 print("a") 95 96 # return 10 97 98 yield 2 99 print("b") 100 101 yield 3 102 print("c") 103 104 105 106 107 # g = test() 108 # 109 # print(g.__next__()) 110 # print(g.__next__()) 111 # print(g.__next__()) 112 # print(g.__next__()) 113 114 g = test() 115 for i in g: 116 print(i) 117 118 print("-"*30) 119 g = test() 120 for i in g: 121 print(i)