property类有3个方法getter、setter、deleter, 分别把对应的操作绑定到指定的函数实现。
因此:
1) 对property类对象的读操作就是执行绑定到getter的函数
2) 对对象赋值操作就是执行绑定到setter的函数
3) 对删除对像操作则执行绑定到deleter的函数,
这是property类所特别的功能,也是python区别于其它语言所特有的功能。 用例子来说明:
class People:
def __init__(self, name):
self.__name =
name
@property
def name(self):
print('welcome %s ' %
self.__name)
@name.getter
def name(self):
print('>>>>:',self.__name)
@name.setter
def name(self,val):
if not isinstance(val,str):
print('名字必须是字符串')
return
self.__name =
val
@name.deleter
def name(self):
print('deleter')
print('不允许删除')
p = People(
'alex')
p.name
del p.name
p.name=
'zhang'
p.name
运行结果:
>>>>
: alex
deleter
不允许删除
>>>>: zhang
分析总结:property 它把函数属性编程数据属性使用。例如p.name就是用了getter。 del p.name用的是deleter。p.name='zhang'用的是setter
转载于:https://www.cnblogs.com/z18271397173/p/9130997.html