Python:generator似乎总是给我第一个元素?

Python:generator似乎总是给我第一个元素?,python,generator,Python,Generator,代码 class MyClass: def __init__(self): from datetime import datetime self.union_date = [datetime(2000,1,1), datetime(2000,1,2), datetime(2000,1,3)] def get_new_datetime(self): for date_time in self.union_date:

代码

class MyClass:
    def __init__(self):
        from datetime import datetime
        self.union_date = [datetime(2000,1,1), datetime(2000,1,2), datetime(2000,1,3)]

    def get_new_datetime(self):
        for date_time in self.union_date:
            yield date_time
我调用生成器函数,如下所示:

In [10]: a = MyClass()

In [11]: a.get_new_datetime()
Out[11]: <generator object MyClass.get_new_datetime at 0x7fa90bc20150>

In [12]: next(a.get_new_datetime())
Out[12]: datetime.datetime(2000, 1, 1, 0, 0)

In [13]: next(a.get_new_datetime())
Out[13]: datetime.datetime(2000, 1, 1, 0, 0)

In [14]: next(a.get_new_datetime())
Out[14]: datetime.datetime(2000, 1, 1, 0, 0)
[10]中的
:a=MyClass()
在[11]中:a.获取新的日期时间()
出[11]:
在[12]中:下一步(a.获取新的日期时间()
Out[12]:datetime.datetime(2000,1,1,0,0)
在[13]中:下一步(a.获取新的日期时间()
Out[13]:datetime.datetime(2000,1,1,0,0)
在[14]中:下一步(a.获取新的日期时间()
Out[14]:datetime.datetime(2000,1,1,0,0)

它只显示第一个元素。。。为什么会发生这种情况?

您每次都在创建一个新的生成器,可能您的意思是:

In []:
g = a.get_new_datetime()
next(g)

Out[]:
datetime.datetime(2000, 1, 1, 0, 0)

In []:
next(g)

Out[]:
datetime.datetime(2000, 1, 2, 0, 0)

等等。

您每次都在创建一个新的生成器,可能您的意思是:

In []:
g = a.get_new_datetime()
next(g)

Out[]:
datetime.datetime(2000, 1, 1, 0, 0)

In []:
next(g)

Out[]:
datetime.datetime(2000, 1, 2, 0, 0)

等等。

Oops,大错T\u T.谢谢:)Oops,大错T\u T.谢谢:)你也可以通过在a中为d做
得到你想要的东西。获取新的日期时间():打印(d)
你也可以通过在a中为d做
得到你想要的东西。获取新的日期时间():打印(d)