2012-08-31 6 views
1

J'ai une fonction:Comment effectuer une fonction pendant une certaine période en python?

perform(val) 

Je veux appeler deux fois comme ceci:

perform(True) 
perform(False) 

Ici, je veux la première fonction appel perform(True) à exécuter pendant 5 heures. Après 5 heures, dès que la dernière instruction dans perform(True) est exécutée, elle doit retourner, et perform(False) doit être exécutée.

Quelque chose de semblable à ceci:

while passed_time < 5:00: 
    perform(True) 
perform(False) 

Ou peut-être la définition de perform(val) devrait être changé?

def perform(val): 
    while passed_time < 5:00 
     do_something1() 
     do_something2() 
     do_something3() 
     do_something4() 

    return 

Comment est-ce que je peux faire ceci?

Cordialement

Répondre

2
from datetime import datetime, timedelta 
start = datetime.now() 
while datetime.now() - start < timedelta(seconds=5*60*60): 
    perform(True) 
perform(False) 
+0

La seule chose que je changerais est d'utiliser datetime.utcnow, de cette façon vous ne rencontrerez aucun problème si vous traversez une frontière d'épargne de jour. – aychedee

Questions connexes