在 Python 中調度重複函數
在 Python 中,您可能想要以特定的時間間隔重複執行某個函數。這可以透過多種方法來實現。
一個簡單的方法是使用帶有 time.sleep() 的 while 迴圈來暫停執行,然後重新執行該函數。然而,這種方法不是首選,因為它不能有效地利用 Python 的事件循環。
使用 sched 模組
更有效的解決方案是利用 sched 模組,它提供了一個通用事件調度程式。它允許您安排任務在將來運行。
以下程式碼示範如何使用 sched 模組:
import sched, time def do_something(scheduler): # schedule the next call first scheduler.enter(60, 1, do_something, (scheduler,)) print("Doing stuff...") my_scheduler = sched.scheduler(time.time, time.sleep) my_scheduler.enter(60, 1, do_something, (my_scheduler,)) my_scheduler.run()
此程式碼建立一個調度程序,調度一個函數 do_something 60 秒內執行,此後重複執行。
使用事件循環庫
如果您的應用程式已經使用事件循環庫(例如 asyncio、trio 或 tkinter),您可以使用其方法來安排任務。例如,在 asyncio 中,您可以使用 create_task() 方法來安排函數在事件循環中執行。
透過利用事件循環,您可以確保程式在排程任務執行時保持回應。這種方法效率更高,建議大多數應用使用。
以上是如何在 Python 中高效率地調度重複函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!