如何在Python中使用此回调?

时间:2018-12-19 21:31:58

标签: python python-3.x

请注意,我在Python中完全是绿色的,并且我不知道回调在这种语言下是如何工作的。

我已经尝试了一段时间来解决我的问题,但是我不知道该怎么办。

我在Python中使用回调有问题。我用the Python keyboard module听机器上按下的键。

当我尝试使用keyboard.hook()方法时,它要求我进行回调。我知道回调的工作方式,但是只要Python不是我的主要语言,我就真的不知道该怎么做。

在JavaScript中,就像在函数中命名参数然后打印该参数一样容易。那样简单。

import keyboard

keyboard.hook()

## How to print keys?

在官方文档中,hook()方法调用了一个回调。如何访问此回调,最重要的是打印从其中记录的密钥?我只需要一个简单的示例,便可以永远记住它。

任何帮助都很感激。

2 个答案:

答案 0 :(得分:1)

您似乎希望从文档中找到类似的东西。

def keyHook(info):
    print(info)

keyboard.hook(keyHook)

答案 1 :(得分:1)

您可以像传递变量一样传递函数,方法是将其名称传递给for column in excelFile: if 'tom' in column.lower(): print(column) 方法。

然后,根据keyboard.hook()上的文档,它使用带有三个字段的hook()调用回调:

  
      
  • keyboard.KeyboardEvent:字符(例如“&”)或描述(例如“ space”)的Unicode表示形式。名称总是小写。
  •   
  • name:代表物理密钥的数字,例如55。
  •   
  • scan_code:事件发生时间的时间戳,精确度与OS相同。
  •   

因此,将其放在一起,您可以像这样使用它:

time

每按一次键,您将打印键盘事件的详细信息。

请注意,如果您的程序可以继续运行,则不需要import keyboard def my_keyboard_hook(keyboard_event): print("Name:", keyboard_event.name) print("Scan code:", keyboard_event.scan_code) print("Time:", keyboard_event.time) keyboard.hook(my_keyboard_hook) # Block forever, so that the program won't automatically finish, # preventing you from typing and seeing the printed output keyboard.wait() 调用-我只是想确保您没有运行示例代码,看到它立即终止,然后认为出了问题