Как передать аргументы в staticmethod?
Есть класс родитель который реализует статический метод
class Shape :
def __init__(self, x=0, y=0):
self.x = x
self.y = y
@staticmethod
def get_distance (figure1, figure2):
rez = math.sqrt(math.pow(figure2-figure1,2)+math.pow(figure2-figure1,2))
return print (rez)
Аргументами метода get_distance(figure1, figure2) я хочу передать экземпляры классов фигур которые наследуют от родителя положения х и у
То есть у меня есть еще 2 класса:
class Square (Shape):
def __init__(self, x, y, a=1):
self.a = a
Shape.__init__(self, x, y)
class Triangle(Shape):
def __init__(self, x, y, a=1):
self.a = a
Shape.__init__(self, x, y)
Из этих классов создаю экземпляры и хочу передать значения x y , третий аргумент а передаваться не должен
Ответы (1 шт):
Автор решения: SergFSM
→ Ссылка
вы хотите получить, что-то вроде этого?
from math import sqrt
class Shape:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
@staticmethod
def get_distance (figure1, figure2):
rez = sqrt(pow(figure2.x-figure1.x,2)+pow(figure2.y-figure1.y,2))
return rez
class Square (Shape):
def __init__(self, x, y, a=1):
super().__init__(x,y)
self.a = a
class Triangle(Shape):
def __init__(self, x, y, a=1):
super().__init__(x,y)
self.a = a
sq = Square(30,30)
tr = Triangle(60,70)
dist = Shape.get_distance(sq,tr)
print(dist) # 50.0