装饰器:
定义了一个函数
想在运行时动态增加功能
不希望改动函数本身代码
比如,已有函数,期望在调用函数的时候,打印一条log:
可以使用高阶函数:
1. 可以接受函数做为参数
2. 可以返回函数
3. 接受一个函数,对其包装,然后返回一个新函数
示例:
def f1(x):
return x*2
def new_fn(f):
def fn(x):
print("call" + f.__name__ + "()")
return f(x)
return fn
aaa = new_fn(f1)
print( aaa(2) )