Как сделать перегрузку операторов между двумя разными классами в Python - PullRequest
0 голосов
/ 15 ноября 2018

Рассмотрим основной класс

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 голосов
/ 15 ноября 2018

Вы четко знаете, как перегрузить операторов. Используйте проверку типов для возврата объектов нужного типа или NotImplemented в каждом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...