2

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

def keep_running(ttl):
    return ttl > 0

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

有没有更好的方法来做到这一点,最好是完全在功能范围内keep_running

4

2 回答 2

2

管理状态的最好方法可能是在一个类中。loop_context您可以使用一个值初始化一个对象ttl,然后您的循环条件将是loop_context.keep_running().

于 2013-04-08T23:37:25.620 回答
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
于 2013-04-08T23:43:42.500 回答