繁体   English   中英

Python 键盘模块错误:TypeError: 'NoneType' 对象不可调用

[英]Python keyboard module error: TypeError: 'NoneType' object is not callable

我的代码是:

import keyboard

pressed = ""

def on_key_press():
    print("Key pressed.")
    global pressed
    # Took me 1 hour to figure out this.
    if charset.chars.__contains__(keyboard.read_key()):
        print("processing slangs...")
        print("*process*")
    else:
        print("registered key.")
        pressed += keyboard.read_key()
    print(pressed)

keyboard.on_press(on_key_press())
keyboard.wait()

我以root身份运行它。 当我按下一个键时,它会按预期打印该键。 但是,当我在它之后按任意键时,它只会返回一个错误,如下所示:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/keyboard/_generic.py", line 22, in invoke_handlers
    if handler(event):
  File "/usr/local/lib/python3.9/dist-packages/keyboard/__init__.py", line 474, in <lambda>
    return hook(lambda e: e.event_type == KEY_UP or callback(e), suppress=suppress)
TypeError: 'NoneType' object is not callable

它会不断打印出这样的错误,不管我按下什么键。 请帮忙。

我认为调用on_key_press函数时唯一需要删除括号


keyboard.on_press(on_key_press())

对这个:


keyboard.on_press(on_key_press)

我的猜测是, keyboard.on_press方法将函数作为参数,而不是可调用对象


函数keyboard.on_press()调用回调而不是函数 这段代码表明:

import keyboard

def test(a):
    print(a)

keyboard.on_press(test)
keyboard.wait()

当您按下随机键时,它会打印出KeyboardEvent(<key> down) 可以使用keyboard.read_key()提取键字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM