如果希望支持多个灯和多个按钮,应该如何修改代码?
时间: 2024-09-23 10:02:59 浏览: 14
如果你想支持多个灯和按钮,你可以将灯和按钮的状态以及处理函数封装成类(如Button和Light),然后创建一个列表来管理它们。这里是一个简单的示例:
```python
class Button:
def __init__(self, number):
self.number = number
self.is_pressed = False
def press(self):
self.is_pressed = True
class Light:
def __init__(self):
self.state = False
def toggle(self):
self.state = not self.state
buttons = [Button(i) for i in range(1, 4)] # 假设有三个按钮
lights = [Light() for _ in range(3)] # 假设有三个灯
for button in buttons:
button.press_event = lambda: handle_button_press(button.number, lights)
def handle_button_press(button_num, lights_list):
for light in lights_list:
if light_num := lights_list.index(light): # 获取灯在列表中的位置
light.toggle()
while True:
for button in buttons:
if button.is_pressed:
button.press_event()
button.is_pressed = False
```
现在,每个按钮都有其自己的灯列表,按下一个按钮会相应地切换对应灯光的状态。