class Hour: def __init__(self): self.__hour = 0 def set_hour(self, hour): if hour < 0 or hour >= 24: return False self.__hour = hour return True def get_hour(self): return self.__hour class Minute: def __init__(self): self.__minute = 0 def set_minute(self, minute): if minute < 0 or minute >= 60: return False self.__minute = minute return True def get_minute(self): return self.__minute class Second: def __init__(self): self.__second = 0 def set_second(self, second): if second < 0 or second >= 60: return False self.__second = second return True def get_second(self): return self.__second class Clock: def __init__(self): self.__hour = Hour() self.__minute = Minute() self.__second = Second() def set_time(self, hour, minute, second): if not self.__hour.set_hour(hour): return False if not self.__minute.set_minute(minute): return False if not self.__second.set_second(second): return False return True def tick(self): self.__second.set_second(self.__second.get_second() + 1) if self.__second.get_second() >= 60: self.__second.set_second(0) self.__minute.set_minute(self.__minute.get_minute() + 1) if self.__minute.get_minute() >= 60: self.__minute.set_minute(0) self.__hour.set_hour(self.__hour.get_hour() + 1) if self.__hour.get_hour() >= 24: self.__hour.set_hour(0) def time(self): hour = str(self.__hour.get_hour()).rjust(2, '0') minute = str(self.__minute.get_minute()).rjust(2, '0') second = str(self.__second.get_second()).rjust(2, '0') return hour + ':' + minute + ':' + second
时间: 2023-06-17 19:09:01 浏览: 122
Python RuntimeError: thread.__init__() not called解决方法
这是一个时钟类的实现,包括 Hour、Minute、Second 和 Clock 四个类。Hour、Minute、Second 分别表示时、分、秒,实现了设置和获取对应值的方法,并且对输入值进行了校验。Clock 类组合了 Hour、Minute、Second 类,实现了设置时间、时钟走时和获取当前时间的方法。
其中 tick 方法实现了时钟走时的逻辑,每调用一次,秒数加一,如果秒数达到 60,则秒数清零,分钟加一,如果分钟达到 60,则分钟清零,小时加一,如果小时达到 24,则小时清零。
time 方法返回当前时间的字符串表示,格式为 HH:MM:SS。其中 str.rjust(n, char) 方法是将字符串填充到指定长度 n,填充字符为 char。这里用 0 进行左填充,确保输出的时间格式一致,比如 09:05:03。
阅读全文