我有一个无限的for循环,运行方式如下:
for I in count():
#doing something
savetask = savedata()
if savetask == None:
timerfunction()
def timerfunction():
time.sleep(60)
我的问题或者说我想要实现的是一个像这样运行的函数。 #do something,if savetask == None,睡眠60秒,重复循环,如果savetask ==无反复,睡眠300秒,重复循环,如果savetask ==无再次反复,睡眠600秒......等等如果savetask!=无,那么我希望它在60秒或开始时重启。
我是否需要传递额外的变量,以便它知道它是第二次运行该函数并且savetask == None?
任何帮助或指导都将不胜感激。
编辑:
因为我使用count()而count函数是:
def count(I=0)
while not finished():
yield I
I += 1
这是否意味着我每次增加一个?所以也许我可以用它来计算函数运行的次数并重置i如果savetask!= None?
答案 0 :(得分:0)
你可以做这样的事情的指数退避
for i in count():
#doing something
savetask = savedata()
if savetask == None:
timerfunction(i)
def timerfunction(i):
time.sleep(60*2**i)
小风格点,python中的大写通常用于类。保持变量下限