装饰器之认祖归宗
来源:互联网 发布:goodtv网络电视台直播 编辑:程序博客网 时间:2024/04/27 19:18
这篇应该是装饰器的最后一篇总结性文章,关于装饰器我实在想不到更多
装饰器就是方法
老实说,剖析了半天装饰器,发现到头来都只是方法的高级用法而已,唯一让人有点觉得高大上的不过是@符号进行的自动注入传参
但是这种符号自动调用方法的例子在python中并不是很少见,类名方法调用创建对象也是一样
真的感到迷惑了,只能说对于python还没有真正的熟悉,少见多怪
装饰器原理
方法入参,内部定义新方法包含,将入参方法操作进行调用,扩充新方法,然后进行返回操作
新方法定义的时候甚至可能会消灭原函数,根本不进行调用,这也是可以拓宽思路的一点
星星点灯
关于*args和**kwargs的作用,以及单星*和双星**的操作含义,前篇已经详尽讲述,这里只做归纳总结
装饰顺序
符号装饰和方法装饰的顺序需要记住
方法装饰同层级装饰,由内而外
单方法多装饰,装饰顺序由外而内,越是靠近原函数,装饰越外层
单例模式
单例模式至今已经采用以下几种方法进行了实现
对象类__new__
元类__call__
元类__init__
类方法装饰器
类装饰器
其中元类__init__属于饿汉模式,其余都属于懒汉模式
方法对象
方法也是对象
方法定义的时候就自动创建了对象实例并进行了赋值
方法的类是function
方法对象的名称就是方法名
方法的括号调用就是执行定义的方法体,可以看做是重写了父类的__call__方法
装饰器能发挥大作用的根本原因
对于函数,元类,对象类,对象这四种对象,都能够直接通过括号进行方法的执行调用,在对象和函数之间任意切换
作为对象传入却携带了执行语句,传出却是定义的新语句,加上在方法内部定义的语句只有在进行方法调用时才进行执行的时机性
才造就了装饰器,及其复杂多变和涉及面广等特性
不过装饰器也就设计这四类事物,也只是方法的一种高级用法
涉及类别
元类,对象类,对象,方法
装饰器是方法的高级用法,如是而已,方法研究告一段落,知识不足,继续补充,有更新的见解请大家不吝赐教
- 装饰器之认祖归宗
- 装饰器之变体装饰
- 装饰器之装饰器类
- python之装饰器
- Python之装饰器
- Python3之装饰器
- PHP之装饰器模式
- 设计模式之装饰器
- Python 之 decorator装饰器
- Python 之 decorator 装饰器
- python学习之装饰器
- Python学习之装饰器
- java 之 装饰器模式
- python系列之 - 装饰器
- 设计模式之装饰器
- python之装饰器模式
- Python之装饰器函数
- python之装饰器decorator
- Scratch零基础课程1-“喵星人”奔跑代码解析
- Linux虚拟机联网设置
- Result dubbo接口返回类型的设计
- 在Ubantu上安装oracle客户端工具sqlplus
- 30天自制操作系统-第0天心得笔记
- 装饰器之认祖归宗
- ViewPager基本用法
- IO流-BufferedInputStream输入缓冲流
- [coursera c程序进阶]第三周_排队游戏
- HDU4300 Clairewd’s message(扩展KMP,后缀匹配前缀)
- 安全预警 | 知名 Web 应用服务器 Tomcat 信息泄漏和远程代码执行漏洞
- css引入的方式有哪些?link和@import的区别?
- Vim使用(一)
- 安卓问题汇总