📅  最后修改于: 2023-12-03 14:58:17.951000             🧑  作者: Mango
这道题是2017年GATE Mock II的第10道问题,是一道编程题。题目要求实现一个“门”的数据结构,能够模拟门的开关操作以及判断门当前是否处于开启状态。
实现一个门 Gate
类,具有以下方法:
void open()
将门打开,即设置门的状态为true
void close()
将门关闭,即设置门的状态为false
bool is_open()
检查门的状态是否为true,如果是返回true,否则返回false
我的解法是使用一个布尔类型的变量 is_open
来记录门的状态,然后在 open
和 close
方法中分别改变它的值,最后在 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类来模拟门的开关操作,并进行了测试以验证其正确性。此题考察了对类的基本概念和实现能力,是一道具有代表性的编程题目。