python 装饰器的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 装饰器的用法相关的知识,希望对你有一定的参考价值。

为什么要使用装饰器?

在不改变原函数功能的情况,为了添加新的功能 我们可以在函数运行前后给函数添加新的功能

 1 def outer(func):
 2     #fun()等于原f1函数
 3     def inner():
 4         print(ccccc)
 5         r=func()
 6         print(dddd)
 7         return r
 8     return inner
 9 @outer
10 #@outer代表运行了2个步骤:1.将f1作为参数运行outer函数,2.新函数f1=inner()
11 def f1():
12     print(很复杂)
13 r=f1()
14 print(r)
15 #输出:ccccc
16 #     很复杂
17 #    dddd
18 #    None

 

两个装饰器的作用

def outer_1(func):
    def inner(*args,**kwargs):
        print(aaaa)
        r=func(*args,**kwargs)
        print(bbbb)
        return r
    return inner

def outer(func):
    def inner(*args,**kwargs):
        print(ccccc)
        r=func(*args,**kwargs)
        print(dddd)
        return r
    return inner

@outer_1
@outer
def f1(a1,a2):
    print(很复杂)
    return a1+a2

r=f1(2,4)
print(r)
#输出:
aaaa
ccccc
很复杂
dddd
bbbb
6

 

以上是关于python 装饰器的用法的主要内容,如果未能解决你的问题,请参考以下文章

Python中装饰器的用法

Python基础装饰器的解释和用法

python装饰器的用法

python几种装饰器的用法

python 装饰器的用法

Python装饰器