重载__divmod__方法无法按预期工作

时间:2019-04-13 09:44:01

标签: python-2.7

我向自定义类添加了__divmod__方法。但是,当我在此类的实例上调用divmod函数时,将返回一个额外的None以及(div,mod)元组。

这是一个最小的示例:

class MyClass:
    def __init__(self, val):
        self.val = val
    def __divmod__(self, other):
        return np.divmod(self.val, other)

m = MyClass(7)

呼叫divmod(m, 5)会给出:

((1, 2), None)

我希望结果与直接调用m.__divmod__(5)相同:

(1, 2)

我不知道多余的None来自哪里。魔术方法__divmod__也许还有其他用途?有人可以举个例子吗?

1 个答案:

答案 0 :(得分:-2)

班级学生: def init(self,num): self.num=num

def __divmod__(self,other):
    divmod_tup=divmod(self.num,other.num)
    print("Quotient=",divmod_tup[0])
    print("Remainder=",divmod_tup[1])

s1=学生(66) s2=学生(20) divmod(s1,s2)