我不知道如何直接询问,但这是我的代码:
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'
的不支持的操作数类型
任何人都可以帮助我。
答案 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)
你想要返回一个新的布鲁赫而不是改变当前的布鲁赫。