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正则表达式re模块详细介绍
May 29 Python
详解python中的json的基本使用方法
Dec 21 Python
python一键升级所有pip package的方法
Jan 16 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 Python
python超时重新请求解决方案
Oct 21 Python
python实现音乐播放器 python实现花框音乐盒子
Feb 25 Python
Pygame的程序开始示例代码
May 07 Python
Python如何实现爬取B站视频
May 20 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 21 Python
python中四舍五入的正确打开方式
Jan 18 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 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
JS正则表达式修饰符global(/g)用法分析
2016/12/27 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
跟老齐学Python之list和str比较
2014/09/20 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
Python 读写文件的操作代码
2018/09/20 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
python 获取图片分辨率的方法
2019/01/08 Python
python关闭占用端口方式
2019/12/17 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
汽车工程专业应届生求职信
2013/10/19 职场文书
大专生简历的自我评价
2013/11/26 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
护理工作个人总结
2015/03/03 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
修改MySQL的数据库引擎为INNODB的方法
2021/05/26 MySQL
Python实现简繁体转换
2021/06/07 Python
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle