%除法后获得负数

时间:2016-11-17 12:56:41

标签: class python-3.x oop

我需要在%运算符除法后得到负数。 我创建了一个新类。它以毫秒为单位获得进程持续时间,并以秒,分钟,小时和天为单位表示。 在负输入的情况下,它应表示持续时间的负值。 我制作了表示秒的方法。

    class Duration:
        def __init__(self, milliseconds: int):
            self.__milliseconds = int(milliseconds)

        def seconds(self):
            return abs(self.__milliseconds) // 1000 % 60 * self.is_negative()

        def is_negative(self):
            return -1 if self.__milliseconds < 0 else 1

函数is_negative()有助于在%除法后返回负值。否则我在%divison之后获得1,并且它会中断我的添加()计算。像Duration(1000)-Duration(3000)或其他

在负毫秒值的情况下获取秒值是否更方便?

1 个答案:

答案 0 :(得分:0)

您对代码不满意吗? 我会这样做的,但你的看起来还不错......

class Duration:
    def __init__(self, milliseconds: int):
        self.__milliseconds = int(milliseconds)

    def seconds(self):
        div, mod = divmod(self.__milliseconds // 1000, 60)
        return mod if div >= 0 else mod-60