求解答 迭代器问题
函数在使用迭代时返回结果不一样
# -*- coding:utf8 -*-
year = 0
def ri_qi():
global year
while True:
for month in range(1, 13):
for day in range(1, 31):
yield year, month, day
year += 1
for i in range(5):
print(next(ri_qi()))
返回结果入下,发现没有迭代走
E:\python文件3.8\venv\Scripts\python.exe E:/python文件3.8/日期变化.py
(0, 1, 1)
(0, 1, 1)
(0, 1, 1)
(0, 1, 1)
(0, 1, 1)
换成如下代码
# -*- coding:utf8 -*-
year = 0
def ri_qi():
global year
while True:
for month in range(1, 13):
for day in range(1, 31):
yield year, month, day
year += 1
a = ri_qi()
for i in range(5):
print(next(a))
运行结果如下
E:\python文件3.8\venv\Scripts\python.exe E:/python文件3.8/日期变化.py
(0, 1, 1)
(0, 1, 2)
(0, 1, 3)
(0, 1, 4)
(0, 1, 5)
感觉代码应该没有区别,问什么结果不一样。求解答。