Python клавиатурный слушатель - PullRequest
0 голосов
/ 14 февраля 2020

Я использовал этот код , и он работает нормально. Однако в этом есть что-то странное, как будто это не Python!

Переменная e в print_event используется способом, которого я раньше не видел. Это обычная функция, которая печатает все, что передано ей, но проблема в том, как она используется, даже переменная события, которая должна передаваться в качестве аргумента параметру e

Если вы не обращаете внимания, похоже, что функция append возвращает добавленные значения в print_event, а не добавляет их, как то, что делает append в Python. Вся функция добавляется в список обработчиков один раз, а затем продолжает работать до завершения программы, как некоторое время True l oop.

Код в основном запускает прослушиватель клавиатуры и продолжает записывать нажатые клавиши, но то, что происходит с клавишами, это вопрос. Для l oop в слушателе низкого уровня не имеет смысла, зачем перебирать обработчики, если предполагается записывать ключи, а не читать их. Кроме того, зачем проходить мероприятие? Обработчики - это список, а не функция, я знаю только об операторе присваивания для инициализации переменных

Кроме того, если обработчики инициализируются пустыми, как он присваивает значения элементам и через них, если их пространство памяти не не выделено и не существует?

Я не вижу ни одной функции буфера, вызываемой, так как это работает? Python не должно выглядеть так

Я пытаюсь получить доступ к списку обработчиков в режиме реального времени и обработать события

Объяснение будет приветствоваться. Заранее спасибо

1 Ответ

0 голосов
/ 14 февраля 2020

Вы спрашиваете о переменных функций?

Если да, вы можете передавать функции, как и любые другие переменные, и позже вызывать их под другим именем.

EG:

def hi(string):
    print(string)

fns = [hi, hi]

for fn in fns:
    fn('hello')

Если это по-прежнему вызывает недоумение, возможно, вы могли бы пройтись по нему с помощью отладчика, чтобы сделать идею более конкретной.

...