J'ai récemment commencé à apprendre Python et une partie de l'application simple que je fais inclut une minuterie avec un affichage hh: mm: ss fonctionnant dans son propre thread.Python sched.scheduler dépasse la profondeur de récursivité maximale
regardant autour du web j'ai trouvé deux façons de mettre en œuvre cette:
- Utilisation sched.scheduler
- Utilisation threading.Timer
La façon dont je l'ai fait, il semble similaire pour les deux mises en œuvre:
Serv:
def tick(self, display, alarm_time):
# Schedule this function to run every minute
s = sched.scheduler(time.time, time.sleep)
s.enter(1, 1, self.tick, ([display, alarm_time]))
# Update the time
self.updateTime(display)
Timer:
def tick(self, display):
# Schedule this function to run every second
t = Timer(1, self.tick, (display,alarm_time))
t.start()
# Update the time
self.updateTime(display)
fonctionne très bien en ce qui concerne tic-tac correctement, mais génère l'erreur suivante après quelques minutes: RuntimeError: profondeur de récursivité maximale dépassée. Je sais que vous pouvez augmenter le niveau de récurrence max manuellement, mais cela ne devrait sûrement pas être nécessaire ici?
Pas d'erreur, mais occasionnellement, les secondes sautent ou cochent de manière irrégulière.
Quelqu'un peut-il me diriger dans la bonne direction sur la façon de le faire correctement? Je vous remercie.
S'il vous plaît poster le lien que vous avez trouvé pour l'utilisation de threading.Timer comme ça. –
Le titre de votre question est complètement faux. Vous avez Minuterie dépassant la profondeur de récursivité. Pas sched.scheduler. –
Désolé si je n'étais pas clair. Question éditée La suggestion d'utiliser Timer vient d'ici S'il vous plaît gardez à l'esprit que je suis juste un débutant et probablement eu une mauvaise idée. –
user171331