python借助property装饰器美化你的代码

前言

一般在描述一个实物的时候,都会有set,get,del这三个方法,于是我们就会有下面的代码:

"""描述颜色的类"""


class OldColor(object):

    def __init__(self):
        # 颜色列表
        self.color_list = []

    def set_color(self, name):
        """增加颜色

        用来给颜色列表添加元素
        """
        pass

    def get_color(self):
        """得到颜色

        用来获取颜色列表
        """
        pass

    def del_color(self):
        """删除颜色

        用来清空颜色列表
        """
        pass

这样写呢,没啥毛病,但是现在有更便捷的方法供你选用了

property
# -*- coding: utf-8 -*-


class NewColor(object):

    def __init__(self):
        # 颜色列表
        self.color_list=[]

    @property
    def colors(self):
        """返回颜色列表

        返回self.color_list
        """
        return self.color_list

    @colors.setter
    def colors(self, name):
        """添加颜色

        添加颜色到color_list
        """
        self.color_list.append(name)

    @colors.deleter
    def colors(self):
        """清空颜色

        清空颜色列表;
        此处也可以是 del self.color_list,如果这样的话,就不能继续添加颜色了
        """
        self.color_list = []


if __name__ == "__main__":
    color_obj = NewColor()
    print("现在的颜色是: ", color_obj.colors)
    color_obj.colors = "green"
    color_obj.colors = "red"
    print("现在的颜色是: ", color_obj.colors)
    del color_obj.colors
    print("现在的颜色是: ", color_obj.colors)

deleter用于描述删除对象实例,所以该方法不能添加参数
运行结果:

现在的颜色是:  []
现在的颜色是:  ['green', 'red']
现在的颜色是:  []

先写到这里了,如果有问题请加入qq群630300475,大家一起聊一下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值