Python自学——构造器 @property @x.setter @x.deleter
程序员文章站
2022-03-03 10:53:59
@property装饰器详解既要保护类的封装特性,又要让开发者可以使用“对象.属性”的方式操作操作类属性,除了使用 property() 函数,Python还提供了@property 装饰器。通过 @property 装饰器,可以直接通过方法名来访问方法,不需要在方法名后添加一对“()”小括号。@property 的语法格式如下@propertydef show(self): return self.__show@x.setter而要想实现修改 show 属性的值......
@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