keyboard.add_hotkey не работает

не могу создать хоткей: код, который должен выполняться после нажатия клавиши выполняется, а при попытке нажать клавишу выдаёт ошибку

import keyboard
from threading import Thread


def run():
    keyboard.add_hotkey('a', print('FFFF'))
    keyboard.wait("d")

Thread(target=run).start()

консоль выдаёт:

FFFF
aException in thread Thread-3:
Traceback (most recent call last):
  File "E:\pyton\pyton\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "E:\pyton\pyton\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\User\PycharmProjects\pythonProject2\venv\lib\site-packages\keyboard\_generic.py", line 58, in process
    if self.pre_process_event(event):
  File "C:\Users\User\PycharmProjects\pythonProject2\venv\lib\site-packages\keyboard\__init__.py", line 218, in pre_process_event
    callback(event)
  File "C:\Users\User\PycharmProjects\pythonProject2\venv\lib\site-packages\keyboard\__init__.py", line 649, in <lambda>
    handler = lambda e: (event_type == KEY_DOWN and e.event_type == KEY_UP and e.scan_code in _logically_pressed_keys) or (event_type == e.event_type and callback())
TypeError: 'NoneType' object is not callable

при том keyboard.wait работает адекватно


Ответы (1 шт):

Автор решения: Prog

Просто print нельзя вызвать, поэтому добавляйте к нему функцию lambda.

Весь код:

import keyboard
from threading import Thread


def run():
    keyboard.add_hotkey('a', lambda: print('FFFF'))
    keyboard.wait("d")

Thread(target=run).start()
→ Ссылка