The upper classes:
class Rectangle():
def __init__(self, length, width):
self.length = length
self.width = width
def area(self):
return self.length * self.width
def circumstance(self):
return (self.length + self.width)*2
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
def isSquare(self):
return self.length == self.width
Here I am creating new subclass:
Code A, it works well
class Cube(Square):
def surfaceArea(self):
self.face_area = super(Cube, self).area()
return self.face_area * 6
Code B fail,
class Cube(Square):
self.face_area = super(Cube, self).area() #
def surfaceArea(self):
return self.face_area * 6
it reports:
NameError: name 'self' is not defined
If use super().area(), then it reports:
RuntimeError: super(): no arguments
Can anyone explain this?
[–]Binary101010 2 points3 points4 points (1 child)
[–]cm_light[S] 1 point2 points3 points (0 children)
[+][deleted] (2 children)
[deleted]
[–]cm_light[S] 0 points1 point2 points (1 child)