1.设计一个“图形”类shape,基类部分的共同特征(如宽等)和方法(如初始化、求面积等)。以此为基础,派生出矩形rectangle、圆形circle。二者都有计算面积的函数以及计算周长的函数。并编写相应主函数进行测试。

下面是一种可行的类的设计方式:

class Shape:
    def __init__(self, width):
        self.width = width
        
    def get_area(self):
        pass
    
class Rectangle(Shape):
    def __init__(self, width, height):
        super().__init__(width)
        self.height = height
        
    def get_area(self):
        return self.width * self.height
    
    def get_perimeter(self):
        return 2 * (self.width + self.height)

class Circle(Shape):
    def __init__(self, width):
        super().__init__(width)
        
    def get_area(self):
        return 3.14 * (self.width / 2) ** 2
    
    def get_perimeter(self):
        return 2 * 3.14 * (self.width / 2)

这是一种基础的类设计方式。这些类中,Shape 是基础类,而 RectangleCircle 则是派生类。基础类中,包含了所有图形共有的属性,即宽度。同时,还有一个 get_area() 方法,它在基础类中是空的,在派生类中需要被重写。

而在派生类中,则有额外的属性,如 Rectangle 类中的高度,以及额外的方法,如 Rectangle 类中的 get_perimeter()Circle 类中的 get_perimeter()

接下来是一个测试主函数的例子:

def main():
    r = Rectangle(4, 5)
    print(f'矩形的面积为 {r.get_area()}')
    print(f'矩形的周长为 {r.get_perimeter()}')
    
    c = Circle(4)
    print(f'圆的面积为 {c.get_area()}')
    print(f'圆的周长为 {c.get_perimeter()}')
    
if __name__ == '__main__':
    main()

运行后的输出应该如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值