Абдикашева Вилена Ринатовна, 411 группа MatchSquare 16867
Жан-Юль-Ян Азель, 414 группа (КФ) MatchSquare 17187
f1class Square:f1class Square:
2    __match_args__ = ('x', 'y', 'w')2    __match_args__ = ('x', 'y', 'w')
33
n4    def __init__(self, x, y, w):n4    def __init__(self, x_coord, y_coordside):
5        self._coordinates = (x, y)5        self._position = (x_coord, y_coord)
6        self._side_length = w6        self._length = side
77
8    @property8    @property
9    def y(self):9    def y(self):
n10        return self._coordinates[1]n10        return self._position[1]
1111
12    @y.setter12    @y.setter
n13    def y(self, value):n13    def y(self, new_y):
14        self._coordinates = (self._coordinates[0], value)14        self._position = (self._position[0], new_y)
1515
16    @property16    @property
17    def x(self):17    def x(self):
n18        return self._coordinates[0]n18        return self._position[0]
1919
20    @x.setter20    @x.setter
n21    def x(self, value):n21    def x(self, new_x):
22        self._coordinates = (value, self._coordinates[1])22        self._position = (new_x, self._position[1])
2323
24    @property24    @property
25    def w(self):25    def w(self):
n26        return self._side_lengthn26        return self._length
2727
28    @w.setter28    @w.setter
n29    def w(self, value):n29    def w(self, new_length):
30        self._side_length = value30        self._length = new_length
3131
32    @property32    @property
33    def h(self):33    def h(self):
n34        return self._side_lengthn34        return self._length
3535
36    @h.setter36    @h.setter
n37    def h(self, value):n37    def h(self, new_length):
38        self._side_length = value38        self._length = new_length
3939
40    @property40    @property
41    def s(self):41    def s(self):
n42        return self._side_length ** 2n42        return self._length ** 2
4343
44    @s.setter44    @s.setter
n45    def s(self, value):n45    def s(self, _):
46        pass46        pass
4747
48    @property48    @property
49    def center(self):49    def center(self):
n50        x, y = self._coordinatesn50        x_coord, y_coord = self._position
51        return (x + self._side_length / 2, y + self._side_length / 2)51        return (x_coord + self._length / 2, y_coord + self._length / 2)
5252
53    @center.setter53    @center.setter
n54    def center(self, value):n54    def center(self, new_center):
55        if isinstance(value, tuple) and len(value) == 2:55        if isinstance(new_center, tuple) and len(new_center) == 2:
56            cx, cy = value56            new_x, new_y = new_center
57        else:57        else:
n58            cx, cy, dx, dy = valuen58            new_x, new_y, offset_x, offset_y = new_center
59            cx, cy = (cx + dx, cy + dy)59            new_x, new_y = (new_x + offset_x, new_y + offset_y)
60        current_center = self.center60        current_center = self.center
t61        dx_shift = cx - current_center[0]t61        x_shift = new_x - current_center[0]
62        dy_shift = cy - current_center[1]62        y_shift = new_y - current_center[1]
63        self._coordinates = (self._coordinates[0] + dx_shift, self._coor63        self._position = (self._position[0] + x_shift, self._position[1]
>dinates[1] + dy_shift)> + y_shift)
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op