函数在python中循环while循环?

时间:2013-04-08 23:33:05

标签: python while-loop

我想创建一个函数keep_running,我可以根据输入定义它对运行时间或迭代次数敏感。我似乎无法想出一种pythonic方法来进行迭代,而不会在函数外部递减计数器,例如:

def keep_running(ttl):
    return ttl > 0

ttl = 1
while keep_running(ttl):
    do_stuff()
    ttl -= 1

有没有更好的方法来执行此操作,最好完全在函数keep_running中?

2 个答案:

答案 0 :(得分:2)

管理状态的最佳方法可能是在课堂内。您可以使用loop_context值初始化对象ttl,然后您的循环条件为loop_context.keep_running()

答案 1 :(得分:2)

我不太确定你的要求。但是迭代器可能对你有用。使用迭代器,它可能是:

>>> def keep_running(ttl):
    while ttl>0:
        yield ttl
        ttl -= 1
>>> for one_round in keep_running(3):
    print(time.time())

结果是:

1365464545.465
1365464545.495
1365464545.505