前言
最近在学习python,学会了为什么要使用装饰器,也明白了装饰器是什么了,但是你也许会问,是否可以在装饰器前面再添加一层装饰器,会怎么样呢?就像大楼一样,一层一层地叠在一起。其实是可以的。现在我们就来学习这种堆叠技术,与类的继承是有相似之处,可以不断地继承下去。下面话不多说了,来一起看看详细的介绍吧。
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#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" )
|
结果输出如下:
1
2
3
4
5
|
******************************
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Hello
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
******************************
|
在这个例子里,先输出星号,也就是先调用第一层装饰器star,接着调用第二层装饰器percent,最后调用函数printer。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:http://blog.csdn.net/caimouse/article/details/78102327