2013-04-08 68 views
2

我想创建一个函数keep_running,我可以根据输入来定义它,以便对运行时间或迭代次数敏感。我似乎无法拿出一个Python的方式做迭代不递减函数外的柜台,例如:在python中终止循环的函数?

def keep_running(ttl): 
    return ttl > 0 

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

有没有更好的办法功能keep_running内做到这一点,最好是彻底?

回答

2

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

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