装饰器property 为了把媳妇藏起来
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 删除这个类属性的时候触发函数内部代码 """
-----------------------------------------------------------------------------------------------------------------------------------------