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的lambda匿名函数的简单介绍
Apr 25 Python
Python3生成手写体数字方法
Jan 30 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
Jun 24 Python
python使用正则筛选信用卡
Jan 27 Python
Python小进度条显示代码
Mar 05 Python
Python flask框架post接口调用示例
Jul 03 Python
python3使用GUI统计代码量
Sep 18 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
Python接口测试数据库封装实现原理
May 09 Python
python实现视频压缩功能
Dec 18 Python
Python 如何解决稀疏矩阵运算
May 26 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 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获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
一个数据采集类
2007/02/14 PHP
UCenter Home二次开发指南
2009/05/28 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
php字符串截取函数用法分析
2014/11/25 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
xmlHTTP实例
2006/10/24 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
让 python 命令行也可以自动补全
2014/11/30 Python
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
Python爬取成语接龙类网站
2018/10/19 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
Python如何批量生成和调用变量
2020/11/21 Python
python 写一个水果忍者游戏
2021/01/13 Python
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
2016自主招生校长推荐信范文
2015/03/23 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书