Color类封装使用RGB颜色模型表示颜色及相应功能:
定义带3个整数参数r,g,b的构造函数,用于初始化对应于红、绿、蓝三种颜色分量的私有实例对象属性__r, __g, __b。
通过装饰器@property定义3个可以作为只读属性访问的实例对象方法r()、g()、c()
定义不带参、有返回值的亮度计算实例方法luminance: g=0.299r+0.587g+0.114b,返回g
定义不带参、有返回值的彩色转灰度的实例方法toGray: 调用luminance方法获得亮度g,对g取整得y,返回元组(y,y,y)
实例化Color类,使用只读属性输出三个通道值,调用方法toGray、luminance。
定义抽象类shape,包含抽象方法area面积的计算。再定义扩展2个子类Circle、Rectangle,构造函数传入基本参数,重写area方法(不带参有返回值,返回面积)。
定义类柱体Barrel,构造函数两个参(高和Shape对象),方法volume(不带参无返回值)计算柱体体积并输出柱体各项信息,