python之decorator 装饰器
1. 装饰器的概念(decorator)
动态扩展已定义函数的功能,但是不改动函数本身的代码。
原理:高阶函数可以接受函数作为参数,并返回一个函数。
所以将需要扩展的函数作为参数传入,生成新的函数返回。
2. 调用装饰器,运用@
比如定义了装饰器log
def log(f):
def fn(*args, **kw): //对于任意参数定义的函数都可以调用
print ‘this is a log‘ //装饰器扩展内容
return f(*args, **kw) //调用参数函数
return fn //返回装饰器函数
对于装饰器log的调用
@log
def add(x, y):
return x + y
print add(1, 2)
结果为 :
this is a log
3
运行时直接调用装饰器log的fn函数