什么是python装饰器?
装饰器其实也就是一个函数,一个用来包装函数的函数,返回一个修改之后的函数对象,将其重新赋值原来的标识符,并永久丧失对原始函数对象的访问。
eg:当需要在Func1和Func2中加一样的功能时,可以在outer中添加一次就可以完成全部函数的添加。装饰器与函数建立连接的方式是在函数的前一行用@+装饰器名称来完成。并且在装饰器中一定要返回被装饰的对象
def outer(fun): def wrapper(): print ‘验证‘ fun() print ‘zhuangshiq‘ return wrapper#一定要返回装饰器的对象 @outer #装饰器与函数建立连接 def Func1(): print ‘func1‘ @outer def Func2(): print ‘func2‘ Func1() Func2()
装饰器参数:
若函数中有接受的参数,则必须在装饰器中添加一个参数。并且在装饰器内部的函数调用中也要添加函数调用。
def outer(fun): def wrapper(arg):#arg为形参 print ‘验证‘ print arg fun(arg) print ‘zhuangshiq‘ return wrapper @outer #装饰器与函数建立连接 def Func1(arg): print ‘func1‘,arg @outer def Func2(arg): print ‘func2‘,arg Func1(‘a‘) Func2(‘a‘)
原文地址:http://jx610.blog.51cto.com/5113370/1702532