当前位置: 移动技术网 > IT编程>脚本编程>Python > Python自学——构造器 @property @x.setter @x.deleter

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

2020年07月30日  | 移动技术网IT编程  | 我要评论
@property装饰器详解既要保护类的封装特性,又要让开发者可以使用“对象.属性”的方式操作操作类属性,除了使用 property() 函数,Python还提供了@property 装饰器。通过 @property 装饰器,可以直接通过方法名来访问方法,不需要在方法名后添加一对“()”小括号。@property 的语法格式如下@propertydef show(self): return self.__show@x.setter而要想实现修改 show 属性的值...

@property装饰器详解

既要保护类的封装特性,又要让开发者可以使用“对象.属性”的方式操作操作类属性,除了使用 property() 函数, 还提供了 @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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网