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 中文乱码问题深入分析
Mar 13 Python
Python3 replace()函数使用方法
Mar 19 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
python实现读Excel写入.txt的方法
Apr 29 Python
python 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
python操作小程序云数据库实现简单的增删改查功能
Jun 06 Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
Python sqlite3查询操作过程解析
Feb 20 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
Jan 30 Python
Python 匹配文本并在其上一行追加文本
May 11 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获取windows登录用户名的方法
2014/06/24 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
JS trim去空格的最佳实践
2011/10/30 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
利用 JavaScript 实现并发控制的示例代码
2020/12/31 Javascript
python之消除前缀重命名的方法
2018/10/21 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
大学四年规划书范文
2013/12/27 职场文书
工作中个人的自我评价
2013/12/31 职场文书
建筑项目策划书
2014/01/13 职场文书
大学毕业自我鉴定范文
2014/02/03 职场文书
内衣营销方案
2014/03/15 职场文书
学校安全管理责任书
2014/07/23 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
大连导游词
2015/02/12 职场文书
检讨书范文大全
2015/05/07 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
解析CSS 提取图片主题色功能(小技巧)
2021/05/12 HTML / CSS
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS