装饰器就是一个以
函数
作为参数并返回一个替换函数
的可执行函数
即装饰器是一个函数,其参数为函数,返回值也为函数
可理解为对函数的功能进行拓展,所以叫装饰
# outer为装饰器,效果为给被装饰函数返回值结果加负号
def outer(fun):
def inner(x):
return -fun(x)
return inner
def func(x):
return x ** 2
func1 = outer(func)
func1(2)
# -4
@outer
def func2(x):
return x
func2(2):
# -2