python装饰器学习笔记


什么是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')

 

 

评论关闭