python 装饰器

半世苍凉 提交于 2019-12-09 12:07:19

# _*_ 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

'''

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!