我想用python编写一个简单的时钟:
class Clock:
def __init__(self):
self._hours = 0
self._minutes = 0
def gethours(self):
return self._hours
def getminutes(self):
return self._minutes
def sethours(self, hours):
self._hours = hours
def setminutes(self,minutes):
if self._minutes > 60:
self._hours = self._hours + 1
self._minutes = 1
else:
self._minutes = minutes
def tic(self):
if self._minutes > 58:
self._hours = self._hours + 1
self._minutes = 1
else:
self._minutes = self._minutes + 1
minutes = property(getminutes, setminutes)
hours = property(gethours, sethours)
但是当我现在想用下面的代码检查它时,我在assert(c.hours == i and c.minutes == j)
处得到了一个AssertionError
这里有一个固定的重写,使用相同的测试。 setter负责正确设置小时和分钟的值(尽管hours的setter无法正确地添加超过一天的值,但是这很容易根据与分钟相同的模型添加)。在
那么
tic()
只是添加一分钟的快捷方式。在注释掉
print
语句以删除所有小时:分钟。在注意:我已经将
Clock
转换为一个“新样式”类对象,它允许使用属性修饰符并使所有内容更具可读性(这对于python3来说不是必需的,但对于让相同的代码也能在python2中工作是必要的)。在摘录和输出结尾:
^{pr2}$相关问题 更多 >
编程相关推荐