你可以在 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
我正在尝试将两个功能绑定到一个按钮,例如,我想用一个按钮切换蜂鸣器和 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