无参的decorator这章好难理解啊
有更通俗易懂的解释么?现在是知其然不知其所以然,只能照葫芦画瓢了。
有更通俗易懂的解释么?现在是知其然不知其所以然,只能照葫芦画瓢了。
2016-04-24
这是前面一位同学的写的,我也是看了他写的这个才明白的,希望对你有所帮助,也顺便谢谢这位同学!
首先定义decorator
def log(f): #定义装饰器高阶函数,以要装饰的原函数 f 作为参数
def fn(x): #内部相当于重构要装饰的函数f,重新命名为fn,
print 'call ' + f.__name__ + '()...' #这是装饰器具体的装饰内容
return f(x) #为了不重写原来的函数f的代码,所以用return f(x)代替原函数的代码。 return fn #将被装饰过的新的函数fn返回
#装饰完后,原来的f(x)就已经被新的函数fn(x)所覆盖了,fn(x)中保留了原函数f(x)的作用,并加进去了新的作用。
举报