📜  门| GATE 2017 MOCK II |问题10(1)

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

门 | GATE 2017 MOCK II |问题10

这道题是2017年GATE Mock II的第10道问题,是一道编程题。题目要求实现一个“门”的数据结构,能够模拟门的开关操作以及判断门当前是否处于开启状态。

题目描述

实现一个门 Gate 类,具有以下方法:

void open()

将门打开,即设置门的状态为true

void close()

将门关闭,即设置门的状态为false

bool is_open()

检查门的状态是否为true,如果是返回true,否则返回false

注意事项
  • 初始时门应该是关闭状态
  • 门的状态只能是true或false,不能为null或undefined
实现

我的解法是使用一个布尔类型的变量 is_open 来记录门的状态,然后在 openclose 方法中分别改变它的值,最后在 is_open 方法中返回这个值。

class Gate:
    def __init__(self):
        self.is_open = False

    def open(self):
        self.is_open = True

    def close(self):
        self.is_open = False

    def is_open(self):
        return self.is_open
测试

我们可以编写一些测试函数来测试我们的代码是否正常工作。

def test_gate():
    """Test the Gate class."""

    g = Gate()
    assert g.is_open() == False, "Test 1 failed: gate should be closed initially."

    g.open()
    assert g.is_open() == True, "Test 2 failed: gate should be open after calling open()."

    g.close()
    assert g.is_open() == False, "Test 3 failed: gate should be closed after calling close()."

    print("All tests passed.")
结论

通过以上代码实现和测试,我们成功地实现了一个Python类来模拟门的开关操作,并进行了测试以验证其正确性。此题考察了对类的基本概念和实现能力,是一道具有代表性的编程题目。