Я сейчас играю с 2D геометрией. Я создал два класса: Point
и LineSegment
:
class Point:
def __init__(self, x: float, y: float):
self.x = x
self.y = y
class LineSegment:
def __init__(self, p1: Point, p2: Point):
self.p1 = p1
self.p2 = p2
Интересный случай - LineSegment(p1, p1)
- отсюда отрезок линии нулевой длины. По сути, это просто точка p1
. Но это типа LineSegment
.
Я, скорее всего, воспользуюсь чем-то вроде следующего, чтобы разобраться с этим делом:
class LineSegment:
def __init__(self, p1: Point, p2: Point):
self.p1 = p1
self.p2 = p2
def simplify(self):
if self.p1 == self.p2:
return self.p1
return self
Хотя это, вероятно, очень плохая идея, я все еще любопытно: Можно ли заставить конструктор класса LineSegment
вернуть объект класса Point
?