# _*_ 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
'''
来源:https://www.cnblogs.com/qlong/p/6271516.html