Каким образом работает строчка super().__setattr__(key, value)
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def calculate_area(self):
return self.width * self.height
class Square(Rectangle):
def __init__(self, side):
super().__init__(side, side)
def __setattr__(self, key, value):
super().__setattr__(key, value)
if key in ("width", "height"):
self.__dict__["width"] = value
self.__dict__["height"] = value
rect = Rectangle(4, 5)
square = Square(3)
Как я понимаю, метод super()
вызывает метод класса родителя, но как строчка super()__setattr__(self, key, value)
интерпретируется - я не понимаю, ведь у класса Rectangle
нет метода __setattr__
.