我正在使用Pynput包来监听键盘按键。它有一个用于按键的回调方法,我的定义如下:
def on_press(key):
print('{0} key pressed'.format(key.char))
...
if key == ord('q'):
exit(0)
return
# view.update_ui(player.get_metadata()) # how can I pass this in?
然后将其连接到监听程序并启动监听程序:
listener = keyboard.Listener(on_press=on_press)
listener.start()
如果唯一的参数是key
,这将非常有效,如Pynput文档中所示。然而,我想让这个函数接受额外的参数,例如def on_press(key, view, player)
。最具蟒蛇色彩的方式是什么?
发布于 2019-11-25 06:09:14
可能是一个工厂函数或functools.partial
。
from functools import partial
def on_press(key, view, player):
print('{0} key pressed'.format(key.char))
...
if key == ord('q'):
exit(0)
return
listener = keyboard.Listener(on_press=partial(on_press, view=my_view, player=some_player))
listener.start()
https://stackoverflow.com/questions/59022869
复制相似问题