Python自学——构造器 @property @x.setter @x.deleter

@property装饰器详解

既要保护类的封装特性,又要让开发者可以使用“对象.属性”的方式操作操作类属性,除了使用 property() 函数,Python 还提供了 @property 装饰器。通过 @property 装饰器,可以直接通过方法名来访问方法,不需要在方法名后添加一对“()”小括号。

@property 的语法格式如下 

@property
def show(self):
    return self.__show

 

@x.setter

而要想实现修改 show 属性的值,还需要为 area 属性添加 setter 方法,就需要用到 setter 装饰器,它的语法格式如下: 

@show.setter
def show(self,value):
    if not  isinstance(value,str):
       raise ValueError('值错误')
    if len(value)<0 or len(value)>100:
        raise ValueError('字符长度出错')
    self.__show = value

@x.deleter  

除此之外,还可以使用 deleter 装饰器来删除指定属性,其语法格式为: 

@show.deleter
def show(self):
    self.__show = '电影结束'

 综合示例:

class TVshow(object):
    @property
    def show(self):
        return self.__show

    @show.setter
    def show(self,value):
        if not  isinstance(value,str):
            raise ValueError('值错误')
        if len(value)<0 or len(value)>100:
            raise ValueError('字符长度出错')
        self.__show = value

    @show.deleter
    def show(self):
        self.__show = '电影结束'

tvshow = TVshow()      #实例化

tvshow.show='正在播放:七个小公主大战矮人'  #执行@show.setter 修改show属性值
print(tvshow.show,'\n')

tvshow.show="正在播放:蛇精大战痴汉"   #继续执行@show.setter 修改show属性值
print(tvshow.show,'\n')

del tvshow.show      #执行@show.deleter 删除指定属性
print(tvshow.show)

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值