擅长:python、mysql、java
<p>在@VincentSavard提示之后,我重写了代码以使用<code>send()</code>将数据发送到生成器。我不得不在最后放弃for循环,但是在运行时更改for循环是很困难的。你知道吗</p>
<p>这就是我的目的:</p>
<pre><code>import datetime
def mynexttime(mystart=None):
# returns 15 30 45 59 minute for each hour
for myhour in range(0, 24):
for myminute in range(15, 61, 15):
if mystart is not None:
if datetime.time(myhour, myminute
if myminute < 60 else 59) < mystart:
continue
mystart = (yield myhour, myminute if myminute < 60 else 59)
# start at 12:45
mytest = mynexttime(datetime.time(12, 45))
breaktime = None
while True:
try:
h, m = mytest.send(breaktime)
print(str(h) + ":" + str(m))
if h == 13:
breaktime = datetime.time(15, 44)
print('skip until 15:45')
except StopIteration:
break
</code></pre>