class 里外函数调用的问题

问题遇到的现象和发生背景

这里的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)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632