В чем разница между использованием super()
и self
при определении метода double_area
в подклассе? Кажется, super().area()
и self.area
делают одно и то же? Какой из них следует использовать, и почему они делают то же самое?
class Rectangle(object):
def __init__(self, length, width):
self.length = length
self.width = width
def area(self):
return self.length*self.width
def perimeter(self):
return 2*self.length + 2*self.width
class Square(Rectangle):
def __init__(self,length):
super().__init__(length,length)
def double_area(self):
return 2*super().area()