python面向对象的继承

设计
一个名为Graph的类表示图形,这个类包含
(1)一个 getArea() 计算面积的方法
(2)一个 getPerimeter(),计算周长的方法
(3) 定义一个info() 输出矩形长、宽、周长、面积的方法
一个名为 Rectangle 的矩形类来表示矩形。这个类继承Graph包含:
(1) 宽度和高度:width、height
(2) 构造方法:传入width,height
(3) 定义一个 getArea() 计算面积的方法
(4) 定义一个 getPerimeter(),计算周长的方法
(5) 定义一个info() 输出矩形长、宽、周长、面积的方法
一个名为 Circle 的圆形类来表示圆形。这个类继承Graph包含:
(1)半径:radius
(2) 构造方法:传入radius
(3) 定义一个 getArea() 计算面积的方法
(4) 定义一个 getPerimeter(),计算周长的方法
(5) 定义一个info() 输出圆形半径、周长、面积的方法
一个名为countandPrint的函数,参数为inst,功能是
(1)调用inst.info()输出传入对象的信息
测试数据:R1(90,80),C1(120),

class Graph:
    def __init__(self, length, width):
        self.length = length
        self.width = width
        
    def getArea(self):
        area = self.length * self.width
        return area

    def getPerimeter(self):
        perimeter = 2 * (self.length + self.width)
        return perimeter

    def info(self):
        area = self.getArea()
        perimeter = self.getPerimeter()
        print("Length: ", self.length)
        print("Width: ", self.width)
        print("Perimeter: ", perimeter)
        print("Area: ", area)
class Rectangle(Graph):
    def __init__(self, width, height):
        super().__init__(width, height)
        self.width = width
        self.height = height

    def getArea(self):
        area = self.width * self.height
        return area

    def getPerimeter(self):
        perimeter = 2 * (self.width + self.height)
        return perimeter

    def info(self):
        area = self.getArea()
        perimeter = self.getPerimeter()
        print("Width: ", self.width)
        print("Height: ", self.height)
        print("Perimeter: ", perimeter)
        print("Area: ", area)
class Circle(Graph):
    def __init__(self, radius):
        super().__init__(radius, radius)
        self.radius = radius

    def getArea(self):
        area = 3.1416 * self.radius ** 2
        return area

    def getPerimeter(self):
        perimeter = 2 * 3.1416 * self.radius
        return perimeter

    def info(self):
        area = self.getArea()
        perimeter = self.getPerimeter()
        print("Radius: ", self.radius)
        print("Perimeter: ", perimeter)
        print("Area: ", area)

def countandPrint(inst):
    inst.info()

R1 = Rectangle(90, 80)
C1 = Circle(120)

countandPrint(R1)
countandPrint(C1)