光的魅 2021-12-16 09:36 采纳率: 50%
浏览 79
已结题

自学时遇到的,弄不出来。

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。

img

定义抽象类shape,包含抽象方法area面积的计算。再定义扩展2个子类Circle、Rectangle,构造函数传入基本参数,重写area方法(不带参有返回值,返回面积)。
定义类柱体Barrel,构造函数两个参(高和Shape对象),方法volume(不带参无返回值)计算柱体体积并输出柱体各项信息,

img

  • 写回答

1条回答 默认 最新

  • CSDN专家-HGJ 2021-12-16 14:58
    关注
    class Color:
        def __init__(self,r,g,b):
            self.__r=r
            self.__g=g
            self.__b=b
        @property
        def r(self):
            return self.__r
        @property
        def g(self):
            return self.__g
        @property
        def b(self):
            return self.__b
        def lum(self):
            g=0.299*self.__r+0.587*self.__g+0.114*self.__b
            return g
        def toGray(self):
            g=self.lum()
            return (int(g),int(g),int(g))
    r=255
    g=152
    b=0
    c=Color(r,g,b)
    print(f'r={c.r},g={c.g},b={c.b}')
    print(c.lum())
    print(c.toGray())
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 创建了问题 12月16日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看