假设有三个函数,都需要加打印log的功能
def log():
print('log')
def f1():
print('f1函数')
log()
def f2():
print('f2函数')
log()
def f3():
print('f3函数')
log()
使用装饰器
def outer(func):
def inner():
func()
print('log')
return inner
@outer
def f1():
print('f1函数')
@outer
def f2():
print('f2函数')
@outer
def f3():
print('f3函数')
print('f1 函数的调用那个结果:',f1())
装饰器是一种增加函数功能的简单方法,利用装饰器功能可以很快的给不同的函数插入相同的功能,使用装饰器可以很快速的实现对某些功能增加或者取消同一个功能,使用装饰器可以精简代码,装饰器实现方式为:@+装饰器函数名
1. 自动执行outer函数并且将其下面的函数名f1当作参数来传递;
2. 将outer函数的返回值(变量或者是函数),重新赋值给f1;
3. 一旦结合装饰器后,调用f1其实执行的是inner函数内部,原来的f1被覆盖;
4. 一旦这个函数被装饰器装饰之后,被装饰的函数重新赋值成装饰器的内层函数。