📌  相关文章
📜  门| Sudo GATE 2020 Mock III(2019年1月24日)|第50章(1)

📅  最后修改于: 2023-12-03 14:58:33.456000             🧑  作者: Mango

题目介绍:门| Sudo GATE 2020 Mock III(2019年1月24日)|第50章

题目背景

在计算机科学中,门是一个基本的电路元件,可以执行特定的逻辑功能。

题目描述

有一种门被设计为:只有当输入 1 个信号时,门才会打开。

请设计并实现一个门类,实现以下功能:

  • open_door():只有当当前门状态是关闭的(即为 False)时,才能将状态改为打开的(即为 True)。
  • close_door():只有当当前门状态是打开的(即为 True)时,才能将状态改为关闭的(即为 False)。
  • is_door_open():返回当前门状态是否为打开的(即为 True 或 False)。

门的初始状态应该是关闭的。

输入格式

无。

输出格式

无。

样例
door = Door()
print(door.is_door_open()) # False
door.open_door()
print(door.is_door_open()) # True
door.close_door()
print(door.is_door_open()) # False
door.close_door() # 无效操作
print(door.is_door_open()) # False
解题思路

一种比较直白的方法是,在门类中设置一个变量用来表示门当前状态,通过设置 open_door()close_door() 方法,实现对当前门状态的改变。

考虑门的初始状态应该是关闭的,那么可以在门类中,初始化时将门状态设置为 False。同时需要在 open_door()close_door() 方法中进行正确性检查,以避免出现不合理的状态转移。

代码实现