Python 运算符重载

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()

你可能感兴趣的:(python3.x)