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制作简单的朴素基数估计器的教程
Apr 01 Python
Python对列表去重的多种方法(四种方法)
Dec 05 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
python如何制作缩略图
Apr 30 Python
pycharm new project变成灰色的解决方法
Jun 27 Python
python制作英语翻译小工具代码实例
Sep 09 Python
30秒学会30个超实用Python代码片段【收藏版】
Oct 15 Python
如何基于Python创建目录文件夹
Dec 31 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
python三引号如何输入
Jul 06 Python
Pycharm导入anaconda环境的教程图解
Jul 31 Python
Python中Cookies导出某站用户数据的方法
May 17 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
ThinkPHP中create()方法自动验证表单信息
2017/04/28 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
显示、隐藏密码
2006/07/01 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
JQuery自动触发事件的方法
2015/06/13 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
Python温度转换实例分析
2018/01/17 Python
谈谈python中GUI的选择
2018/03/01 Python
python3射线法判断点是否在多边形内
2019/06/28 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
canvas简易绘图的实现(海绵宝宝篇)
2018/07/04 HTML / CSS
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
静态变量和实例变量的区别
2015/07/07 面试题
求职信范文怎么写
2014/01/29 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
早会主持词
2014/03/17 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
基于PyQt5制作一个群发邮件工具
2022/04/08 Python