【发布时间】:2014-11-14 22:39:20
【问题描述】:
嘿,所以我正在开发一个需要昼夜循环的程序。这是我让它开始工作的函数:
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>
关于如何解决这个问题的任何想法?
附:这里的想法是在打印出状态并返回状态的同时运行循环
附言任何带有 varb 的东西。是一个具有不重要数值的全局变量
【问题讨论】:
-
这不是错误。你创建了一个生成器函数...
-
好的,我怎样才能改变我的代码来做我需要的事情?
-
好的,我刚刚做了 list(epoch()) 并且它有效。如果我需要再次做同样的事情,我做了什么?如何重新创建?
-
@unknown:
list()接受一个迭代器(生成器是一种特殊的迭代器)并接受所有产生的元素。 -
当你想要它时调用 list(epoch)