光的魅 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日

悬赏问题

  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 angular开发过程中,想要读取模型文件,即图1的335行,会报404错误(如图2)。但我的springboot里配置了静态资源文件,如图3。且在该地址下我有模型文件如图4,请问该问题该如何解决呢?
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 vite打包后,页面出现h.createElement is not a function,但本地运行正常
  • ¥15 Java,消息推送配置