python 装饰器

# _*_ coding:utf-8 _*_
'''
#装饰器decorator就是一个返回函数的高阶函数

def outer(fun):
    def wrapper():
        print('call %s:()' %fun.__name__)
        fun()
    return wrapper
#执行@outer相当于outer(Func1),调用Func1函数的时候变成了装饰器返回的函数wrapper()
#在eclipse使用Variables查看变量
@outer
def Func1():
    print('func1')

   

 

   
Func1()

'''
'''
#原函数加参数的情况;原函数有返回值的情况
def outer(fun):
    def wrapper(arg):
        print('call %s:()' %fun.__name__)
        result = fun(arg)
        return result
    return wrapper
@outer
def Func1(arg):
    print('func1',arg)
    return 'return'

'''
'''
Func1 =
    def wrapper(arg):
        print('call %s:()' %fun.__name__)
        result = fun(arg)
        return result
'''
'''
a = Func1('qlong')
print(a)

'''

'''
#装饰器有参数
def outer(text):
    def decorator(func):
        def wrapper():
            print(text,'装饰器带参数')
            func()
        return wrapper
    return decorator


@outer('execute')
def Func1():
    print('func1')
   
Func1()

#注意wrapper()函数平行的语句就返回wrapper;decorator函数平行语句就返回
#decorator

'''

posted @ 2017-01-11 00:31  struggle-fi  阅读(131)  评论(0编辑  收藏  举报