如何在python中的两个不同类之间进行运算符重载

时间:2018-11-14 23:13:11

标签: python class operator-overloading

考虑主班

class point2D:
    def __init__(x, y):
        self.x = x
        self.y = y
    def __sub__(self, other):
        return vector2D(self.x - other.x, self.y - other.y)

和子类:

class vector2D(point2D):
    def __add__(self, other):
        return vector2D(self.x + other.x, self.y + other.y)

现在,我希望+运算符也能够添加一个vector2D和一个point2D对象并返回一个point2D对象。并且在任何类之间使用-运算符,无论如何都要返回vector2D。如果您能帮助我知道是否/如何在Python 3.*中做到这一点,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

您清楚地知道如何重载运算符。使用类型检查返回所需类型的对象,或者返回NotImplemented