装饰器:
装饰器本质上是一个 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)