zoukankan      html  css  js  c++  java
  • 类:求常用几何形状的周长与面积

    # 定义一个抽象类,用来求常用几何形状的周长与面积,要求相同的可以重复使用。
    # 考察:类的定义,__init__方法,类的成员方法,类的继承

    # 形状有:正方形,圆,长方形
    # 参考单词:Shape, square, Circle,rectangle
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import math
    
    class Shape(object):
        #基类
        def __init__(self,length,width,radius):
            if length == 0 or width == 0:
                raise ValueError()
    
            self.length = length
            self.width = width
            self.radius = radius
    
        def area(self):
            print u"求面积:"
            area = self.length * self.width
            return area
    
        def perimeter(self):
            print u"求周长:"
            perimeter = (self.length + self.width) *2
            return perimeter
    
    class Square(Shape):
        "正方形"
        def __init__(self,length):
            super(Square, self).__init__(length,length,0)
    
    class Rectangle(Shape):
        "矩形"
        pass
    
    class Circle():
        "圆"
        pi = 3.1415926
        def __init__(self,radius):
            self.radius = radius
        def area(self):
            print u"求圆的面积:"
            return Circle.pi*self.radius*self.radius
        def perimeter(self):
            print u"求圆的周长:"
            return 2*Circle.pi*self.radius
    
    class Triangle(Shape):
        "等边三角形"
        def __init__(self,length):
            super(Triangle, self).__init__(length,length,0)
        def area(self):
            return super(Triangle, self).area()*(math.sqrt(3)/2)
        def perimeter(self):
            return super(Triangle, self).perimeter()-self.length
    

     测试用例及输出结果:

    if __name__ == "__main__":
        square = Square(5)
        print square.area()
        print square.perimeter()
        ret = Rectangle(6,4,0)
        print ret.area()
        print ret.perimeter()
        circle = Circle(3)
        print circle.area()
        print circle.perimeter()
        triangle = Triangle(4)
        print triangle.area()
        print triangle.perimeter()
    

     

    总结:

    1.类的名称用首字母大写的单词;

    2.对属性的引用是通过“对象.属性”(object.attribute)的形式来实现的;

    3.python通过在类的内部定义函数,来说明方法;

    4.对象包括属性和方法;

    5.子类可以直接使用父类的方法,而不用定义;

    6.self可以跨函数使用;

  • 相关阅读:
    调用EasyPlayer播放器报错FlvPlayer.load() has been called,pleasse call unload() first!,如何处理?
    开发webrtc P2P连接报错DOMException: Failed to execute XXXXXX排查及优化
    异地视频共享/组网工具EasyNTS如何进行穿透接口的数据迁移?
    视频监控如何实现异地共享/组网?EasyNTS解决远程难题
    每日总结
    关于RHEL7.5无法使用yum命令的解决方法
    java后端学习-第一部分java基础:面向对象编程
    每日总结
    每日总结
    每日总结
  • 原文地址:https://www.cnblogs.com/general-seven/p/6043599.html
Copyright © 2011-2022 走看看