装饰器property 为了把媳妇藏起来

简介: 装饰器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     删除这个类属性的时候触发函数内部代码  
"""
相关文章
|
10月前
|
缓存 人工智能 监控
AOP:让你的代码像超级英雄一样飞翔
AOP:让你的代码像超级英雄一样飞翔
星际争霸之小霸王之小蜜蜂(二)--类的使用
星际争霸之小霸王之小蜜蜂(二)--类的使用
|
Serverless C语言 Python
学编程这么久,还傻傻分不清什么是方法(method),什么是函数(function)?
在标准库inspect 中,它提供了两个自省的函数,即 ismethod() 和 isfunction(),可以用来判断什么是方法,什么是函数。
351 0
学编程这么久,还傻傻分不清什么是方法(method),什么是函数(function)?
|
前端开发
#yyds干货盘点 歌谣学前端之静态属性
#yyds干货盘点 歌谣学前端之静态属性
87 0
|
前端开发
#yyds干货盘点# 歌谣学前端之静态属性
#yyds干货盘点# 歌谣学前端之静态属性
59 0
|
安全 编译器
我在一个构造方法中写了30个参数,老板看了想骂人
我在一个构造方法中写了30个参数,老板看了想骂人
119 0
|
设计模式
学了这个,三歪再也不想写各种setter了
今天又来给大家吹一下逼。 三歪在公司里边也看了不少的系统了,看到结构清晰、代码清晰的系统时会赞叹能写出这种代码的人是真的牛逼。看到乱七八糟的代码又不写注释的时候也会吐槽:“这写的是啥啊”
117 0
学了这个,三歪再也不想写各种setter了
|
设计模式 缓存 NoSQL
专治不会看源码的毛病--spring源码解析AOP篇
总结一下要形成的习惯:   1>有空时隔一段时间要做几道算法题,C语言和JAVA都可以,主要是训练思维。 2>定期阅读spring的源码。因为spring是框架,重设计,能够培养大局观。   3>阅读底层的书籍,如linux方面,虚拟机方面,这是内功。越高级的语言只是招式。   4>不要忘记做了一半的东西,如搜索引擎方面,redis方面,可以过一段时间再做,因为到时候自己的境界有提升,深入程度也会有所增加。      下面是今天的正题。我也很菜,看源码也很费力,所以都会从最容易的入手。先了解其原理,再去看源码。看源码看熟了,以后再遇到问题,就可以通过源码去了解原理了。
专治不会看源码的毛病--spring源码解析AOP篇
|
安全 编译器 Linux
C++筑器 引用生死唯一
C++筑器 引用生死唯一
143 0