乐趣区

总结python装饰器

装饰器:

装饰器本质上是一个 Python 函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。

装饰器的作用就是为已经存在的函数或对象添加额外的功能。

格式:

def test2(func):
    def test3():
        print('-------test3')
        func()
    return test3
    
@test2
def test1():
    print('------test1')
    
test1()

相当于

def test2(func):
    def test3():
        print('-------test3')
        func()
    return test3
    
def test1():
    print('------test1')
    
ret = test2(test1) 
ret()

一个装饰器可以装饰多个函数。

def test2(func):
    def test3(a):
        func(a)
    return test3
    
@test2
def test(num):
    print('------test----%d' % num)
    
@test2
def test1(num):
    print('-----test1----%d' % num)
    
test(100)
test1(100)
退出移动版