Próbuję napisać metodę, która odlicza do określonego czasu i jeśli polecenie restartu nie zostanie podane, wykona to zadanie. Ale nie sądzę, że klasa Python threading.Timer
pozwala na anulowanie timera.Anulowanie wątków.Timer w Pythonie
import threading
def countdown(action):
def printText():
print 'hello!'
t = threading.Timer(5.0, printText)
if (action == 'reset'):
t.cancel()
t.start()
Wiem, że powyższy kod jest nieprawidłowy. Byłbym wdzięczny za pewne wskazówki tutaj.
To jest prawie najlepsze. Byłoby * dobrze *, gdyby twój program nie zakończył się natychmiast, z pojedynczym "Cześć" i bez żadnego opóźnienia! :) Musisz włączyć 't.cancel()' do funkcji 'sayHello()' w oparciu o pewne warunki, np. 'jeśli licznik == 10: t.cancel()'. Miałoby to wtedy znaczenie. – Apostolos
Przepraszamy. Wówczas nawet nie byłby dobry. Jeśli dodasz dowolny kod po wywołaniu 'sayHello (0)', zostanie ono wykonane przed zakończeniem testu timera! (Wypróbuj sam, dodając np. 'Print" Zrobione "' na końcu twojego kodu.) – Apostolos