Python 运算符重载

class MyComplex:    def __init__(self, _real, _imag):        self.real = _real        self.imag = _imag    def __add__(self, comp):        if type(self) is type(comp):            return MyComplex(self.real+comp.real, self.imag+comp.imag)        else:            return MyComplex(self.real+comp, self.imag)    def __sub__(self, comp):        if type(self) is type(comp):            return MyComplex(self.real-comp.real, self.imag-comp.imag)        else:            return MyComplex(self.real-comp, self.imag)    def __mul__(self, comp):        if type(self) is type(comp):            return MyComplex(self.real*comp.real-self.imag*comp.imag,                            self.real*comp.imag+self.imag*comp.real)        else:            return MyComplex(self.real*comp, self.imag*comp)    def __str__(self):        if self.imag>=0:            return f'{self.real}+{self.imag}i'        else:            return f'{self.real}{self.imag}i'def main():    c1 = MyComplex(3,-5)    c2 = MyComplex(2,3)    print(c1,c2)    print('c1+c2=', c1+c2)    print('c1-c2=', c1-c2)    print('c1*c2=', c1*c2)if __name__=="__main__":    main()