f | class Square: | f | class Square: |
| __match_args__ = ('x', 'y', 'w') | | __match_args__ = ('x', 'y', 'w') |
| | | |
n | def __init__(self, x, y, w): | n | def __init__(self, x_coord, y_coord, side): |
| self._coordinates = (x, y) | | self._position = (x_coord, y_coord) |
| self._side_length = w | | self._length = side |
| | | |
| @property | | @property |
| def y(self): | | def y(self): |
n | return self._coordinates[1] | n | return self._position[1] |
| | | |
| @y.setter | | @y.setter |
n | def y(self, value): | n | def y(self, new_y): |
| self._coordinates = (self._coordinates[0], value) | | self._position = (self._position[0], new_y) |
| | | |
| @property | | @property |
| def x(self): | | def x(self): |
n | return self._coordinates[0] | n | return self._position[0] |
| | | |
| @x.setter | | @x.setter |
n | def x(self, value): | n | def x(self, new_x): |
| self._coordinates = (value, self._coordinates[1]) | | self._position = (new_x, self._position[1]) |
| | | |
| @property | | @property |
| def w(self): | | def w(self): |
n | return self._side_length | n | return self._length |
| | | |
| @w.setter | | @w.setter |
n | def w(self, value): | n | def w(self, new_length): |
| self._side_length = value | | self._length = new_length |
| | | |
| @property | | @property |
| def h(self): | | def h(self): |
n | return self._side_length | n | return self._length |
| | | |
| @h.setter | | @h.setter |
n | def h(self, value): | n | def h(self, new_length): |
| self._side_length = value | | self._length = new_length |
| | | |
| @property | | @property |
| def s(self): | | def s(self): |
n | return self._side_length ** 2 | n | return self._length ** 2 |
| | | |
| @s.setter | | @s.setter |
n | def s(self, value): | n | def s(self, _): |
| pass | | pass |
| | | |
| @property | | @property |
| def center(self): | | def center(self): |
n | x, y = self._coordinates | n | x_coord, y_coord = self._position |
| return (x + self._side_length / 2, y + self._side_length / 2) | | return (x_coord + self._length / 2, y_coord + self._length / 2) |
| | | |
| @center.setter | | @center.setter |
n | def center(self, value): | n | def center(self, new_center): |
| if isinstance(value, tuple) and len(value) == 2: | | if isinstance(new_center, tuple) and len(new_center) == 2: |
| cx, cy = value | | new_x, new_y = new_center |
| else: | | else: |
n | cx, cy, dx, dy = value | n | new_x, new_y, offset_x, offset_y = new_center |
| cx, cy = (cx + dx, cy + dy) | | new_x, new_y = (new_x + offset_x, new_y + offset_y) |
| current_center = self.center | | current_center = self.center |
t | dx_shift = cx - current_center[0] | t | x_shift = new_x - current_center[0] |
| dy_shift = cy - current_center[1] | | y_shift = new_y - current_center[1] |
| self._coordinates = (self._coordinates[0] + dx_shift, self._coor | | self._position = (self._position[0] + x_shift, self._position[1] |
| dinates[1] + dy_shift) | | + y_shift) |