2013-04-08 66 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