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()
解决方案
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()
这不是存储事件的最佳方法,因为您的 args 对于 2 个不同的事件可能是相同的。但是,这应该可以帮助您入门。
推荐阅读
- batch-file - 如何将一行代码发送到另一个批处理文件中,该行中有一个特殊字符
- javascript - Identity.IsAuthenticated 在 ASP.Net Web API 中返回 false
- jquery - Jquery - 当页面滚动到另一个具有 ID 的 div(B) 的开头时隐藏一个 Div(A)
- sql-server - SSIS - 如何使用备用 AD 凭据配置数据库连接
- node.js - 如何将节点 js 上的 axios 请求从我的路由文件导出到主 app.js?
- javascript - Phaser 3,物理编辑器和 Matter JS:改变形状的问题
- excel - 如何让这段代码运行更流畅?最后取消选择
- c - 如何在几 (7) 帧后停止 gl 挂起?
- regex - 用于匹配具有不同内部内容的一对双管的正则表达式
- activemq - 是否可以通过 Jolokia API 从 ActiveMQ 队列中检索超过 400 条消息?