Czy powinienem i jak dodawać metody do int w pythonie?

(Jest to pytanie związane z nauką, więc każda rada dotycząca tego, dlaczego powinienem coś robić lub nie robić, a także zalecanych zasobów, aby lepiej to robić, jest więcej niż dobra.)

Próbuję dowiedzieć się o OOP w Pythonie i wykonałem prostą klasę „Czas” taką jak ta:

class Time(object):

    """A time representation."""

    def __init__(self, hours=0, minutes=0, seconds=0):
        self.hours = hours
        self.minutes = minutes
        self.seconds = seconds

    def __int__(self):
        return self.hours * 3600 + self.minutes * 60 + self.seconds

Teraz to__int__ Metoda pozwala mi uzyskać int z moich instancji „Time”, które reprezentują czas (ale w sekundach), kiedy to robięint(Time(3, 4, 5)). Przy okazji, uważam, że to jest niesamowite. Ale aby to wykorzystać, dobrze byłoby wiedzieć, jak zrobić „int”, używając nowej metody, która zwraca obiekt „Time”, więc coś takiego3643.time() może być zrobione.

Czemu? Z różnych powodów:

Bo w ten sposób uczę się o tym, co dla mnie jest teraz jak czarna magia. (te podkreślały rzeczy, które sprawiają, że coś się dzieje ... i podobne rzeczy)

Ponieważ nie wiem dlaczego nie powinienem. (więc powiedz mi proszę)

Przypuszczam, że mogłabym zrobić coś takiego jak ta na zewnątrz każdej klasy:

def time(seconds):
    """Return an HH:MM:SS stamp of "seconds", where "seconds" should be an int."""
    hours, minutes = 0, 0
    if seconds >= 3600:
        hours, seconds = divmod(int, 3600)
    if seconds >= 60:
        minutes, seconds = divmod(int, 60)
    return "{:02d}:{:02d}:{:02d}".format(hours, minutes, seconds)

Ale to nie wydaje się odnosić do tych obiektów wystarczająco, nie wydaje się to zbytnio zorientowane na obiekt ... Więc uważam, że może jest lepszy sposób podejścia do tego rodzaju rzeczy.

questionAnswers(1)

yourAnswerToTheQuestion