这一节完全不懂了
装饰器里边的讲解
装饰器里边的讲解
2017-02-23
装饰器。。。#主要原理:利用高阶函数,以覆盖的原理,使被调用函数功能被增强
如:
def f1(x):
return x*x
def log(f): #接受一个函数为参数
def fn(x):
print 'call ' + f.__name__ + '()...' #加强被调用函数功能的语句
return f(x) # 运行原来的函数,并返回值
return fn #返回自己内部的函数
f1=log(f1) #原来的f1已被完全覆盖,功能被增强
以上可简写为:
def log(f):
def fn(x):
print 'call ' + f.__name__ + '()...'
return f(x)
return fn
@log
def f1(x):
return x*x
#层层调用,利用最外层的return返回内一层的函数,直到最内层添加加强功能的语句
举报