我想构建一个具有以下属性的类 SwitchBoard:
当我创建一个配电盘时,我应该能够设置它包含的开关数量所有开关都应该从“关闭”位置开始
如果我打印一个总机,它应该打印以下内容:“以下开关已打开:1 3 5 7 9”
如果我用 n 作为整数调用 switch(n),它应该获取第 n 个灯开关的状态
如果我用 n 作为整数调用 switch every(n),它应该获取每个第 n 个灯开关的状态
如上所述,我应该能够编写一段解决灯开关问题的全局代码。
这是我到目前为止的工作,第一个是类LightSwitch
如果开关打开,它将翻转并关闭
如果开关关闭,它将翻转并打开
class LightSwitch():
def __init__(self, mode):
self.switch = mode
def __str__(self):
if self.switch == True:
return ("I am on")
if self.switch == False:
return ("I am off")
def turn_on(self):
self.switch = True
def turn_off(self):
self.switch = False
def flip(self):
if self.switch == True:
self.switch = False
else:
self.switch = True
对于班级SwitchBoard
,这就是我所拥有的:
class SwitchBoard():
def __init__(self, n):
self.switches = []
for i in range(n):
self.switches.append(LightSwitch(False))
def switch(self, n):
self.switches[n].flip()
def switch_every(self, n):
for i in range(0,len(self.switches), n):
switch(i)
def __str__(self):
return "The following switches are on: " + str(self.switches)
if __name__ == ('__main__'):
my_light = LightSwitch(False)
my_light.flip()
print (my_light) # This prints "I am on"
my_light2 = LightSwitch(True)
my_light2.flip()
print(my_light2) # This prints "I am off"
my_switchboard = SwitchBoard(10) # This is the issue.
my_switchboard.switch_every(2)
print (my_switchboard)
这行不通,我正在使用一个列表来附加关闭开关的数量,但我不确定如何编写全局代码来解决这个问题,例如在一个序列中打开开关,或者可能缺少某些东西, 请帮忙。