python中装饰器级连的使用方法示例


Posted in Python onSeptember 29, 2017

前言

最近在学习python,学会了为什么要使用装饰器,也明白了装饰器是什么了,但是你也许会问,是否可以在装饰器前面再添加一层装饰器,会怎么样呢?就像大楼一样,一层一层地叠在一起。其实是可以的。现在我们就来学习这种堆叠技术,与类的继承是有相似之处,可以不断地继承下去。下面话不多说了,来一起看看详细的介绍吧。

代码如下:

#python 3.6 
def star(func): 
  def inner(*args, **kwargs): 
    print("*" * 30) 
    func(*args, **kwargs) 
    print("*" * 30) 
  return inner 
 
def percent(func): 
  def inner(*args, **kwargs): 
    print("%" * 30) 
    func(*args, **kwargs) 
    print("%" * 30) 
  return inner 
 
@star 
@percent 
def printer(msg): 
  print(msg) 
printer("Hello")

结果输出如下:

******************************
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Hello
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
******************************

在这个例子里,先输出星号,也就是先调用第一层装饰器star,接着调用第二层装饰器percent,最后调用函数printer。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python实现繁?转为简体的方法示例
Dec 18 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
解决python tkinter界面卡死的问题
Jul 17 Python
Python实现CNN的多通道输入实例
Jan 17 Python
Python socket服务常用操作代码实例
Jun 22 Python
解决Django响应JsonResponse返回json格式数据报错问题
Aug 09 Python
Python logging模块原理解析及应用
Aug 13 Python
PyQt5中QSpinBox计数器的实现
Jan 18 Python
python3判断IP地址的方法
Mar 04 Python
如何使用PyCharm及常用配置详解
Jun 03 Python
python中map()函数的使用方法示例
Sep 29 #Python
python中reduce()函数的使用方法示例
Sep 29 #Python
Django Admin 实现外键过滤的方法
Sep 29 #Python
python 调用c语言函数的方法
Sep 29 #Python
python文件名和文件路径操作实例
Sep 29 #Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 #Python
Python 基础教程之闭包的使用方法
Sep 29 #Python
You might like
php结合正则获取字符串中数字
2015/06/19 PHP
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
2012/03/16 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
npm的lock机制解析
2019/06/20 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
Python操作串口的方法
2015/06/17 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
Python检查ping终端的方法
2019/01/26 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
简单了解django缓存方式及配置
2019/07/19 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
深入理解Python 多线程
2020/06/16 Python
.NET程序员的几道面试题
2012/06/01 面试题
学生自我评语大全
2014/04/18 职场文书
司机岗位职责说明书
2014/07/29 职场文书
员工家属慰问信
2015/03/24 职场文书
庆祝教师节主持词
2015/07/06 职场文书