class C(object):
"""
为了不让用户直接访问属性,让他设置为私密的,然后让property去搞
"""
def __init__(self):
self._x = None

@property
def x(self):
print("property")
return self._x

@x.setter
def x(self, value):
print("set")
self._x = value

@x.deleter
def x(self):
print("del")
del self._x

c = C()
c.x # property
c.x = "李哈哈" # setter
del c.x # deleter


"""
这三个是兄弟三个,一起用一起写,你如果只需要获取,那property就足够了,如果你想赋值和删除,但是没有下面的装饰器,就会报错。

@property :(相当于getattr的功能) 把 类函数 变成 类属性(此时属性类型为NoneType) 最终效果:调用这个属性 就会执行函数内部代码

@类函数.setter 给这个类属性赋值的时候触发函数内部代码

@类函数.deleter 删除这个类属性的时候触发函数内部代码
"""

 

-----------------------------------------------------------------------------------------------------------------------------------------