super基本用法如下:
# 定义一个长方形类,实现两种方法
class Rectangle:
def __init__(self, length, width):
self.length = length
self.width = width
def area(self):
print("You're getting the area...")
return self.length * self.width
def perimeter(self):
print("You're getting the perimeter...")
return 2 * (self.length + self.width)
# 类继承
class Square(Rectangle):
def __init__(self, length):
# Rectangle.__init__(self, length, length)
super().__init__(length, length) # 与上行等价
>>>r = Rectangle(4, 5)
>>>r.area()
You're getting the area...
20
>>>r.perimeter()
You're getting the perimeter...
18
>>>s = Square(6)
>>>s.perimeter()
24
>>>s.area()
36
通过super实现了间接引用,避免父类名称改变时需要修改类子类定义时内部父类名称。