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

2022-07-31,,,

@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)

 

本文地址:https://blog.csdn.net/qq_35451939/article/details/107640190

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

下载本文的Word格式文档,以方便收藏与打印。