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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
浅析Python中将单词首字母大写的capitalize()方法
May 18 Python
快速了解python leveldb
Jan 18 Python
python自动化生成IOS的图标
Nov 13 Python
python如何查看微信消息撤回
Nov 27 Python
python opencv判断图像是否为空的实例
Jan 26 Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 Python
python多进程重复加载的解决方式
Dec 13 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
May 25 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
Django cookie和session的应用场景及如何使用
Apr 29 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
cache_lite试用
2007/02/14 PHP
php的curl实现get和post的代码
2008/08/23 PHP
分享3个php获取日历的函数
2015/09/25 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
JavaScript弹窗基础篇
2016/04/27 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
Vue前后端不同端口的实现方法
2018/09/19 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
原生JavaScript实现弹幕组件的示例代码
2020/10/12 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
Python版微信红包分配算法
2015/05/04 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
python用户管理系统的实例讲解
2017/12/23 Python
Python字符串的常见操作实例小结
2019/04/08 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
企业厂长岗位职责
2013/12/17 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
优秀班集体申报材料
2014/12/25 职场文书