确定键盘事件顺序的规则? (Python)

Rules for determining the order of keyboard events? (Python)

我目前的情况是这样的:

keyboard.on_press(Function1)
keyboard.on_press_key(';', Function2)
keyboard.on_press_key('/', Function3) 

通过试用我发现 on_press_key() 事件总是先发生(我的程序的逻辑依赖于它)但我不知道为什么,或者它是否是硬件 - 或者OS- 如果在其他系统上使用,可能会出现不一致和损坏的特定内容 (?)。

我试过搜索,但找不到关于此的任何内容。有没有一种可靠的方法可以知道事件的触发顺序,或者强制它们以特定的顺序触发?

查看源码,控制流程如下:

当一个键事件被引发时,process被调用,调用pre_process_event(它本身调用nonblocking_keys字典中的所有回调)在调用处理程序之前.

    def process(self):
        """
        Loops over the underlying queue of events and processes them in order.
        """
        assert self.queue is not None
        while True:
            event = self.queue.get()
            if self.pre_process_event(event):
                self.invoke_handlers(event)
            self.queue.task_done()

不过这只是一个实现细节,可能会随着新版本的发展而变化,你最好不要依赖它。你可以在 Function2Function3 中调用 Function1 吗?