TypeError:* =''int'和'instance'的不支持的操作数类型

时间:2018-01-16 20:46:15

标签: python python-2.7

我不知道如何直接询问,但这是我的代码:

class Bruch:

    def __init__ (self,zaehler,nenner):
        self.__zaehler=zaehler
        self.__nenner=nenner

    def __mul__ (self, other):
        self.___zaehler *= other
        self.__nenner *= other

    def mal (self,other):
        self.__zaehler *= other
        self.__nenner *= other

    def __str__(self):
        return "Bruch : " + (self.__zaehler) + "/" + str(self.__nenner)


if __name__ == "__main__":
    bruch1 = Bruch(2,3)
    bruch2 = Bruch(4,5)
    bruchMul = bruch1.mal(bruch2)
    print bruchMul
    bruchMul2 = bruch1*bruch2
    print bruchMul2

当我运行它时,错误:

  

TypeError:* =''int'和'instance'

的不支持的操作数类型
出现

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:3)

更改功能:

def __mul__ (self, other):
    self.__zaehler *= other
    self.__nenner *= other

为:

def __mul__ (self, other):
    return Bruch(self.__zaehler * other.__zeahler, self.__nenner * other.__nenner)

你想要返回一个新的布鲁赫而不是改变当前的布鲁赫。