我做了一个最小的 pynput
当 left
执行不同操作的程序和 right
箭头键被按下。我想把它变成一个可以将不同值作为参数的函数。
这是一个没有函数且没有参数的最小工作示例:
from pynput.keyboard import Key, Listener
def on_press(key):
print('{0} pressed'.format(key))
if key == Key.esc:
return False
with Listener(on_press=on_press) as listener:
listener.join()
它会打印您按下的键,并在您按下时退出
esc
. 这就是我正在尝试实现的。请注意,它不起作用。只看逻辑。 当
left
按下箭头,我希望程序执行取决于给定参数的命令。右箭头反之亦然。 from pynput.keyboard import Key, Listener
def on_press(key, left, right):
if key == Key.left:
print("{}'s key was pressed.".format(left))
if key == Key.right:
print("{}'s key was pressed.".format(right))
if key == Key.esc:
return False
def activate(name1, name2):
with Listener(
on_press=on_press(key, left=name1, right=name2)) as listener:
listener.join()
# when pressed, the program should print what on_press() is given as argument
activate('Mark', 'John')
最佳答案
有点晚了,但我最近有一个类似的案例。
您可以使用:
def activate(name1, name2):
with Listener(on_press=lambda event: on_press(event, left=name1, right=name2)) as listener:
listener.join()
关于python - 如何将参数传递给 pynput 监听器 on_press 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59801362/