時間が23より大きく、分が60より大きく、秒が60より大きい場合、データを拒否しようとしています(0に変換)それは何もしません。私はget/setメソッドを正しく初期化していないのかどうかは分かりません。時間/分/秒__init__
に境界の外にある場合はチェックしませんクラスのデータ(ミューテータ)の検証
class Clock(object):
def __init__(self, hour, minute, second):
self.__hour = hour
self.__minute = minute
self.__second = second
def setHour(self, hour):
self.__hour = hour
if self.__hour > 23:
self.__hour = 0
def getHour(self):
return self.__hour
def setMinute(self, minute):
self.__minute = minute
if self.__minute > 60:
self.__minute = 0
def getMinute(self):
return self.__minute
def setSecond(self, second):
self.__second = second
if self.__second > 60:
self.__second = 0
def getSecond(self):
return self.__second
def __str__(self):
if self.__hour > 11:
return 'The Time is {}:{}:{} PM'.format(self.__hour, self.__minute, self.__second)
else:
return 'The Time is {}:{}:{} AM'.format(self.__hour, self.__minute, self.__second)
stopwatch = Clock(0, 0, 0)
print(stopwatch)
watch = Clock(10, 30, 0)
print(watch)
wallclock = Clock(5, 66, 42)
print(wallclock)
をあなたのコードどのメソッドも呼び出すことはありません。 – BrenBarn