+8 投票
分类:Python编程与实践 | 用户: (770 分)

1个回答

+2 投票
用户: (41.7k 分)
采纳于 用户:
 
已采纳

生成器函数每次执行都会从头开始,也就是复位的效果,如果将生成器赋给变量,对变量的操作会继续下去,不会自动复位。如下例所示:

def testGen():
    for i in range(100):
        yield i

count = 0
for i in testGen():
    print(i, end=', ')
    count += 1
    if count > 3:
        break
        
#输出:0, 1, 2, 3,

count = 0
for i in testGen():
    print(i, end=', ')
    count += 1
    if count > 3:
        break

#依然输出:0, 1, 2, 3,

test_gen = testGen()

count = 0
for i in test_gen:
    print(i, end=', ')
    count += 1
    if count > 3:
        break

#输出:0, 1, 2, 3,

count = 0
for i in test_gen:
    print(i, end=', ')
    count += 1
    if count > 3:
        break

#继续输出:4, 5, 6, 7, 

 

欢迎来到 爱可可Q&A ,有什么问题可以尽管在这里提问,你将会收到其他成员的热心回答。
...