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中is和id的用法
Apr 03 Python
Python从MP3文件获取id3的方法
Jun 15 Python
python dict.get()和dict['key']的区别详解
Jun 30 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
Python列表推导式与生成器表达式用法示例
Feb 08 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 Python
深入解析python中的实例方法、类方法和静态方法
Mar 11 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
如何基于python实现脚本加密
Dec 28 Python
python中doctest库实例用法
Dec 31 Python
python神经网络编程之手写数字识别
May 08 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 gzip压缩输出的实现方法
2013/04/27 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
Python连接mysql数据库的正确姿势
2016/02/03 Python
Python Requests库基本用法示例
2018/08/20 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
python实现淘宝购物系统
2019/10/25 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
python对XML文件的操作实现代码
2020/03/27 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
食品采购员岗位职责
2014/04/14 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
教师自我剖析材料
2014/09/29 职场文书
求职自我评价参考范文
2019/05/16 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
React实现动效弹窗组件
2021/06/21 Javascript
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers