简单的定时提醒功能,主要用了sched中的scheduler模块实现。

import sched
import threading
import time

schedule = sched.scheduler(time.time, time.sleep)
task = []

def act_remind(behavior):

    print("It's time to " + behavior)

def set_remind(behavior):
    print("I will remind you in 20 seconds")
    task.append(schedule.enter(20, 0, act_remind, (behavior,)))
    schedule.run()

def cancel_remind(n):
    if schedule.empty():
        print("schedule queue is empty.")
    else:
        print(n)
        if n == -1:
            schedule.cancel(task[-1])
        elif n == 0:
            schedule.cancel(task[0])
        else:
            for i in range(len(task)):
                schedule.cancel(task[i])
        print("you have canceled schedule, id =" +str(n))

tag = True
while tag:
    msg = input("Do you want to remind?")
    if msg == 'Y' or msg == 'y':
        remind_thread = threading.Thread(target=set_remind('学习'))
        remind_thread.start()
    elif msg == 'N' or msg == 'n':
        n = input("Which one will you want to cancel?")
        cancel_remind(n)
        # tag = False
    time.sleep(1)
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐