Вызов метода класса из другого класса PYTHON

#python

#python

Вопрос:

Я просто пытаюсь получить программу, которая получает точку из одного класса, а затем в другом классе использует эту точку как центр окружности. Я полагаю, что это просто, но я не знаю, как это сделать.

 class Point:
     def __init__(self, x, y):
        self.x = x
        self.y = y

class Circle(Point):
     def circle(self, center, radius):
        Point.x = center
        Point.y = center
        self.radius = radius
  

Ответ №1:

Вы не должны создавать подкласс Point для своего класса Circle, это не имеет особого смысла, поскольку это две совершенно разные вещи. Вместо этого вы можете взять точку в качестве центра вашего круга и передать ее в класс Circle при инициализации

 class Circle(object):
    def __init__(self, center: Point, radius):
        self.center = center
        self.radius = radius
  

Ответ №2:

То, как вы это делаете, с наследованием, немного сбивает с толку.

Доступны 2 варианта.

Первое : Как упоминал @Iain Shelvington, вы могли бы использовать класс Point в качестве члена вашего класса Circle.

Второе: Если вы действительно хотите подклассировать его / наследовать от точки в вашем круге, вы должны super.init() это.

 class Circle(Point):
    def __init__(self, x, y, radius):
        super().__init__(x, y) # which is the same as creating a self.x and y for Circle
        self.radius = radius