-1

我在一个网站上看到了这段代码,它的用途是监控键盘是否有任何键被按下,然后它会打印下面写的语句。问题是,每当我更改函数名称时,它只是......停止工作!

基本上,当我将on_pressand更改on_releasekey_pressedandkey_released然后将按钮行(在侦听器变量中)中的 and 更改为我定义的名称时,代码运行没有任何错误,但是每当我按下键盘上的任何键时,它on_press只是on_release写入分配的字符而不是整个语句。为什么?

def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(key.char))
    except AttributeError:
        print('special key {0} pressed'.format(key))

def on_release(key):
    print('{0} released'.format(key))
    if key == keyboard.Key.esc:
        return False

listener = keyboard.Listener(
    on_press=on_press,
    on_release=on_release)
listener.start()
4

2 回答 2

2

如果我理解正确,您正在尝试这样做:

listener = keyboard.Listener(
   key_pressed=key_pressed,
   key_released=key_released)

以上将不起作用,您无法更改侦听器函数上的关键字(“keyword=value”)。

下面的代码应该可以工作:

listener = keyboard.Listener(
   on_press=key_pressed,
   on_release=key_released)
于 2020-08-21T08:45:00.560 回答
1

查看键盘文档:https ://pythonhosted.org/pynput/keyboard.html 。基本上,Listener期望以特定方式命名函数,否则它将不起作用。

这意味着您不能更改函数名称。

于 2020-08-21T08:48:53.977 回答