Class 在%除法后获取负数

Class 在%除法后获取负数,class,python-3.x,oop,Class,Python 3.x,Oop,我需要在除以%运算符后得到负数。 我创建了一个新类。它以毫秒为单位获取进程的持续时间,以秒、分钟、小时和天为单位表示。 如果输入为负值,则应表示持续时间的负值。 我创建了表示秒的方法 class Duration: def __init__(self, milliseconds: int): self.__milliseconds = int(milliseconds) def seconds(self):

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

    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
上课时间:
定义初始化(自身,毫秒:int):
self.\uuu毫秒=int(毫秒)
def秒数(自我):
返回abs(self.\u毫秒)//1000%60*self.is\u负()
def为负(自身):
如果self.\u毫秒小于0,则返回-1,否则返回1
函数
为负()。否则,在%division之后得到1,它会中断我的添加()计算。例如
持续时间(1000)-持续时间(3000)


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

您不喜欢代码的哪些方面? 我本来会这样做的,但是你的看起来也不错

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

你不喜欢你的代码中的什么? 我本来会这样做的,但是你的看起来也不错

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

请尝试此返回自我。\u毫秒<0-1:1这在Python@SumitDhariwal中是无效语法。
math.copysign
@在Python中,SumitDhariwal是无效语法,三元运算符就像OP postedI一样,我不理解
%60
的必要性,因为上面的任何值都不正确,包括
60000
,因为它总是
而不是
60+
尝试这个返回值。\u毫秒<0-1:1这在Python@SumitDhariwal中是无效语法。
math.copysign
@在Python中,SumitDhariwal是无效语法,三元运算符就像OP postedI一样,我不理解
%60
的必要性,因为上面的任何值都不正确,包括
60000
,因为它总是
60+