| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- """
- 对象之间的关联关系
- Version: 0.1
- Author: 骆昊
- Date: 2018-03-12
- """
- from math import sqrt
- class Point(object):
- def __init__(self, x=0, y=0):
- self._x = x
- self._y = y
- def move_to(self, x, y):
- self._x = x
- self._y = y
- def move_by(self, dx, dy):
- self._x += dx
- self._y += dy
- def distance_to(self, other):
- dx = self._x - other._x
- dy = self._y - other._y
- return sqrt(dx ** 2 + dy ** 2)
- def __str__(self):
- return '(%s, %s)' % (str(self._x), str(self._y))
- class Line(object):
- def __init__(self, start=Point(0, 0), end=Point(0, 0)):
- self._start = start
- self._end = end
- @property
- def start(self):
- return self._start
- @start.setter
- def start(self, start):
- self._start = start
- @property
- def end(self):
- return self.end
- @end.setter
- def end(self, end):
- self._end = end
- @property
- def length(self):
- return self._start.distance_to(self._end)
- if __name__ == '__main__':
- p1 = Point(3, 5)
- print(p1)
- p2 = Point(-2, -1.5)
- print(p2)
- line = Line(p1, p2)
- print(line.length)
- line.start.move_to(2, 1)
- line.end = Point(1, 2)
- print(line.length)
|