你可以在 python gpiozero 中将两个函数绑定到 button.when_pressed 吗?

Can you bind two functions to button.when_pressed in python gpiozero?

我正在尝试将两个功能绑定到一个按钮,例如,我想用一个按钮切换蜂鸣器和 LED。有没有办法将两个功能附加到同一个按钮,或者一个按钮一次只能做一件事情?

例如:

button.when_pressed = led.toggle && buzzer.toggle

绑定到调用两个函数的函数:

def toggle_led_and_buzzer():
    led.toggle()
    buzzer.toggle()

button.when_pressed = toggle_led_and_buzzer

您可以使用 2 种解决方案。只需将这两个函数合并到一个 single function 中,然后使用按钮调用该单个函数,或者使用 lambda

解决方案 N.1

def ledtoggle_buzzertoggle():
    led.toggle()
    buzzer.toggle()

button.when_pressed = ledtoggle_buzzertoggle

解决方案 N.2

您也可以使用lambda

button.when_pressed = lambda:[led.toggle(), buzzer.toggle()] #or without square brackets