📜  门| Sudo GATE 2021的测验|问题7(1)

📅  最后修改于: 2023-12-03 15:12:45.748000             🧑  作者: Mango

门 | Sudo GATE 2021的测验 | 问题7

本题需要实现对门的打开和关闭操作,门有开关属性,可以通过门的开关属性判断门的状态。

任务要求

实现一个门类,在门类中定义门的开关属性和打开/关闭门的方法。

  • 门的开关属性有两个状态:打开和关闭。
  • 实现打开门的方法:open_door()
  • 实现关闭门的方法:close_door()
  • 当门的状态为打开时,open_door()方法不会改变门的状态,即重复打开门的操作不会产生效果。
  • 当门的状态为关闭时,close_door()方法不会改变门的状态,即重复关闭门的操作不会产生效果。
代码实现
class Door:
    def __init__(self):
        self.is_open = False

    def open_door(self):
        if not self.is_open:
            self.is_open = True

    def close_door(self):
        if self.is_open:
            self.is_open = False
测试样例
door = Door()
assert door.is_open == False
door.open_door()
assert door.is_open == True
door.open_door()
assert door.is_open == True
door.close_door()
assert door.is_open == False
door.close_door()
assert door.is_open == False
分析
  • 定义Door类,里面包含两个成员函数:open_door和close_door。
  • open_door函数的意义是打开门,但是当门已经处于打开状态时,打开门的操作不会产生效果,因此在open_door函数中需要判断门是否已经打开,如果门已经打开则直接返回即可。
  • close_door函数的意义是关闭门,但是当门已经处于关闭状态时,关闭门的操作不会产生效果,因此在close_door函数中需要判断门是否已经关闭,如果门已经关闭则直接返回即可。