python中装饰器级连的使用方法示例

yipeiwu_com6年前Python基础

前言

最近在学习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使用fcntl模块实现程序加锁功能示例

本文实例讲述了python使用fcntl模块实现程序加锁功能。分享给大家供大家参考,具体如下: python 中引入给文件加锁的 fcntl模块 import fcntl 打开...

python使用str & repr转换字符串

可能比较 low 还是记录一下: str 和 repr的使用过程 str 是一个类型 (int, long 类似), 同样她也可以作为一个工厂方法 实例一个 string re...

python中列表元素连接方法join用法实例

本文实例讲述了python中列表元素连接方法join用法。分享给大家供大家参考。具体分析如下: 创建列表: >>> music = ["Abba","Rollin...

python计算n的阶乘的方法代码

整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=1×2×3×...×n。 首先导入math模块,然后调用factorial()函数来计算阶...

Python实现自定义顺序、排列写入数据到Excel的方法

本文实例讲述了Python实现自定义顺序、排列写入数据到Excel的方法。分享给大家供大家参考,具体如下: 例1. 数据框顺序写入Excel: data=a import xlsxw...