# _*_ coding:utf-8 _*_
'''#装饰器decorator就是一个返回函数的高阶函数def outer(fun):
def wrapper(): print('call %s:()' %fun.__name__) fun() return wrapper#执行@outer相当于outer(Func1),调用Func1函数的时候变成了装饰器返回的函数wrapper()#在eclipse使用Variables查看变量@outerdef Func1(): print('func1')
Func1()
'''
'''#原函数加参数的情况;原函数有返回值的情况def outer(fun): def wrapper(arg): print('call %s:()' %fun.__name__) result = fun(arg) return result return wrapper@outerdef 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'''