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读写Redis数据库操作示例
Mar 18 Python
python实现连接mongodb的方法
May 08 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
解决python3 pika之连接断开的问题
Dec 18 Python
python使用response.read()接收json数据的实例
Dec 19 Python
python+numpy按行求一个二维数组的最大值方法
Jul 09 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
python 通过邮件控制实现远程控制电脑操作
Mar 16 Python
python在地图上画比例的实例详解
Nov 13 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 switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
js树形控件脚本代码
2008/07/24 Javascript
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
javascript中indexOf技术详解
2015/05/07 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
Python解析json文件相关知识学习
2016/03/01 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
新闻网站实习自我鉴定
2013/09/25 职场文书
优质服务活动实施方案
2014/05/02 职场文书
教师考核评语大全
2014/12/31 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
Mysql中调试存储过程最简单的方法
2021/06/30 MySQL
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers