这里的function def two_digits(val)
是否做些改动可以放到 class Timer里?
如果不能的话,two_digits它不在class里, class Timer里的函数为什么可以随时
调用这个function。
还有一种情况,two_digits(val) function 如果在另外一个class里,可以随时调用吗?
def two_digits()是叫function, 像在class里存在的def 是不是叫method?
def two_digits(val):
s = str(val)
if len(s) == 1:
s = '0' + s
return s
class Timer:
def __init__(self, hours=0, minutes=0, seconds=0):
self.__hours = hours
self.__minutes = minutes
self.__seconds = seconds
def __str__(self):
return two_digits(self.__hours) + ":" + \
two_digits(self.__minutes) + ":" + \
two_digits(self.__seconds)
def next_second(self):
self.__seconds += 1
if self.__seconds > 59:
self.__seconds = 0
self.__minutes += 1
if self.__minutes > 59:
self.__minutes = 0
self.__hours += 1
if self.__hours > 23:
self.__hours = 0
def prev_second(self):
self.__seconds -= 1
if self.__seconds < 0:
self.__seconds = 59
self.__minutes -= 1
if self.__minutes < 0:
self.__minutes = 59
self.__hours -= 1
if self.__hours < 0:
self.__hours = 23
timer = Timer(00,00,00)
print(timer)
timer.next_second()
print(timer)
timer.prev_second()
print(timer)
two_digits(val) 是全局函数,任何地方都可以调用啊,class Timer里的函数自然也可以调用
two_digits()放到 class Timer里改成:
class Timer:
def __init__(self, hours=0, minutes=0, seconds=0):
self.__hours = hours
self.__minutes = minutes
self.__seconds = seconds
def __str__(self):
return self.two_digits(self.__hours) + ":" + \
self.two_digits(self.__minutes) + ":" + \
self.two_digits(self.__seconds)
def two_digits(self,val):
s = str(val)
if len(s) == 1:
s = '0' + s
return s
def next_second(self):
self.__seconds += 1
if self.__seconds > 59:
self.__seconds = 0
self.__minutes += 1
if self.__minutes > 59:
self.__minutes = 0
self.__hours += 1
if self.__hours > 23:
self.__hours = 0
def prev_second(self):
self.__seconds -= 1
if self.__seconds < 0:
self.__seconds = 59
self.__minutes -= 1
if self.__minutes < 0:
self.__minutes = 59
self.__hours -= 1
if self.__hours < 0:
self.__hours = 23
timer = Timer(00,00,00)
print(timer)
timer.next_second()
print(timer)
timer.prev_second()
print(timer)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!