Python keyboard module error: TypeError: 'NoneType' object is not callable
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。
当我按下一个键时,它会按预期打印该键。
但是,当我在它之后按任意键时,它只是 returns 一个错误,就像这样:
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()
.
提取密钥字符串
我的代码是:
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。 当我按下一个键时,它会按预期打印该键。 但是,当我在它之后按任意键时,它只是 returns 一个错误,就像这样:
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()
.