📅  最后修改于: 2023-12-03 15:28:44.300000             🧑  作者: Mango
本题要求实现一个门类(Gate),支持打开(open)、关闭(close)和询问是否打开(is_open)等操作。
我们可以使用一个布尔值 is_open
表示门是否打开。open
和 close
只需要分别将 is_open
设为 True
或 False
即可。is_open
方法则直接返回 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
然而,上述实现存在一个问题,即 is_open
方法和 is_open
属性重名了,会造成 AttributeError。为了解决这个问题,我们可以将 is_open
属性的名称改为 _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
创建一个新的门对象:
my_gate = Gate()
打开门:
my_gate.open()
关闭门:
my_gate.close()
查询门是否打开:
if my_gate.is_open():
print("门已经打开了!")
else:
print("门还没有打开。")
实现一个门类虽然简单,但是涉及到了类的基本操作,是 Python 面向对象编程的基础。通过本题,我们可以掌握类的基本设计和使用方法,为以后的编程奠定更加牢固的基础。