python的装饰器总结
前面碰到了装饰器的一些内容,这里总结一下。 要想对python更深入理解一些,装饰器是必须要掌握的内容。 闭包 必须说一下闭包这个概念,python的装饰器是python的闭包实现。 说一个通俗的理解,闭包就是能够读取其他函数的内部变量的函数,闭包是函数内部和外部链接的一个桥梁(这句话是百度百科摘过来的,我觉得不错)。我们也都知道python的的命名空间LEGB:查找顺序 L:local, 局部变量,函数结束,L也就没了 E:encolosing,这就是闭包的函数域 G:global,全局的变量 B:build in的内嵌的,比如系统关键字,type,int之类的 global num1 num1 = 1 # 全局 def test(): num1 = 2 # 局部 print num1 num2 = 3 # enclosing num3 = 4 # local def func(): print num2 return func fun = test() fun() print num1 print int # build in 装饰器 装饰器对函数或类进行“装饰”包裹,然后给对应的函数一些附加的功能,可以极大增加复用。 比如我们说一个add的函数,如果我们要在add中增加log,我们可以这么实现 def add(x, y): print "add operation"