如何取消功能中的事件

时间:2019-11-17 11:25:36

标签: python

我需要取消用户输入名称的特定事件。但是s.cancel从未允许我这样做,因为我猜该变量是局部变量。我该怎么办?

这是我的代码:

import sched
import time

s = sched.scheduler(time.time, time.sleep)

def print_job_name(msg):
    print(msg)

def alarm(name):
    name = s.enter(5,1,print_job_name,("Hey",))
    print(type(name))
    return name

alarm('hey')
alarm('Good Morning')
alarm('hello')
s.cancel(hey)
s.run()

1 个答案:

答案 0 :(得分:0)

import sched
import time

s = sched.scheduler(time.time, time.sleep)
scheduled_events = {}
def print_job_name(msg):
    print(msg)


def alarm(name):
    name = s.enter(5,1,print_job_name,("Hey",))
    print(type(name))
    return name

scheduled_events['hey'] = alarm('hey')
scheduled_events['Good Morning'] = alarm('Good Morning')
scheduled_events['hello'] = alarm('hello')
s.cancel(scheduled_events['hey'])
s.run()

这不是存储事件的最佳方法,因为两个不同事件的arg可以相同。但是,这应该可以帮助您入门。