[英]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.