任务是定义一个名为' Shape'及其子类' Square' Square类有一个' init'将给定长度作为参数的函数。这两个类都有一个区域函数,可以打印形状区域,默认情况下Shape的区域为0。
这就是我现在所拥有的:
class Shape:
area = 0
def __init__(self, ??):
class Square(Shape):
def __init__(self, length):
self.length = length
def area(self):
a = (self.length * self.length)
print('The area of a square with a side length of %f is %f' % (self.length, a))
s = Square(2)
s.area()
我不确定在Shape超类中要做什么。
答案 0 :(得分:0)
我想您要覆盖area
类中的默认函数Shape
。然后,当你有一个形状列表 - 一些Shape
,一些Square
甚至可能是一些Polygon
时,你可以通过调用area
打印它们而不知道哪个它就是这样的。多态性!
class Shape:
def __init__(self):
pass
def area(self):
print(0)
在创建子类的实例时调用超类的构造函数也很重要。对于超类的内部结构可能有一些必要的启动:
class Square:
def __init__(self, length):
self.length = length
super(Square, self).__init__()