Python生成器功能混乱

时间:2014-11-14 22:39:20

标签: python function generator

嘿所以我正在制作一个需要白天/夜晚循环的程序。以下是我开始工作的功能:

def epoch():
    for i in range(0,varb.run_number):
        print("it is now day")
        epoch_state = 1
        yield epoch_state
        time.sleep(varb.day_night_length)
        print("it is now night")
        epoch_state = 0 
        yield epoch_state
        time.sleep(varb.day_night_length)

我发现它没有任何问题,但是当我打电话给它时,我得到了这个:

<generator object epoch at 0x01036670>

有关如何解决此问题的任何想法?

P.S。这里的想法是在打印状态并返回状态时运行循环

P.P.S。 varb的任何东西。是一个具有不重要数值的全局

1 个答案:

答案 0 :(得分:0)

这里没有错误。该功能正常工作。

您使用yield表达式创建了生成器函数。您现在需要遍历您的生成器。在此之前,生成器暂停。

您可以使用list()

result = list(epoch())

for循环:

for result in epoch():
    print(result)