Реализовать метод производящий вычитание двух окружностей

Реализовать метод производящий вычитание двух окружностей, вычитание радиусов произвести по модулю. Если вычитаются две окружности с одинаковым значением радиуса, то результатом вычитания будет точка класса Point. Вот пример кода

import math


class Point():

    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

    def __eq__(self, other):
        return self.x == other.x and self.y == other.y

    def __add__(self, other):
        x = self.x + other.x
        y = self.y + other.y
        return Point(x, y)

    def __str__(self):
        return f'({self.x}, {self.y})'

    def distance_from_origin(self):
        return math.hypot(self.x, self.y)


class Circle(Point):

    def __init__(self, radius, x=0, y=0):
        super().__init__(x, y)
        self.radius = radius

    def __eq__(self, other):
        return self.radius == other.radius

    def __str__(self):
        return super().__str__()[:-1] + f', radius={self.radius})'

    def __add__(self, other):
        x = self.x + other.x
        y = self.y + other.y
        radius = self.radius + other.radius
        return Circle(radius, x, y)

    def edge_distance_from_origin(self):
        return abs(self.distance_from_origin() - self.radius)

    def circumference(self):
        return 2 * math.pi * self.radius

    def area(self):
        return math.pi * (self.radius**2)

Основной код вроде как правильно а дальше подскажите пожалуйста


Ответы (2 шт):

Автор решения: splash58

Задание не сосем очевидно, но дословно это будет примерно так

def __sub__(self, other):
    x = self.x - other.x
    y = self.y - other.y
    radius = abs(self.radius - other.radius)
    return Circle(radius, x, y) if radius else Point(x,y)
→ Ссылка
Автор решения: Mr.OIITiMiCT
    def __sub__(self, other):
        x = self.x - other.x
        y = self.y - other.y
        radius = self.radius - other.radius
        return Point(radius, x, y)

примерно так , в классе Circle прописал

→ Ссылка