美文网首页
python装饰器2018-11-19

python装饰器2018-11-19

作者: xyzxmz | 来源:发表于2018-11-19 15:26 被阅读0次
    • 装饰器也是个函数
    • 装饰器有参数,参数是函数
    • 装饰器有内嵌函数
    • 装饰器有返回值,返回值是内嵌函数
    • 装饰器使用时直接挂在被装饰还是上方@装饰器名 注意名字别错了
    • 被装饰函数如果带返回值,内嵌函数需要做返回
    • 被装饰函数如果有参数,内嵌函数要有参数args,作参数的函数同样要有args
    #最简单的装饰器函数
    def decorator(func):
        def wrap(): #嵌套wrap函数
            print('process1......')
            func()
        return wrap  #注意return的层级
    @decorator  #装饰器做关联
    def func():
        print('func')
    #执行
    func()
    >>> process1......
        func
    
    
    #被装饰函数带返回值的
    def decorator():
        def wrap():
            print('process1......')
            val=func()
            return val
        return wrap
    
    @decorator
    def func():
        return 'value'
    
    #执行
    func()
    >>> process1.......
        value
    
    #带参数的
    def decorator(func):
        def wrap(*args):#这里*args代表多个参数
            print('process1......')
            val=func(*args)#*args
            return val
        return wrap
    @decorator
    def func(x:int)->int:
        return x+1
    #执行
    func(2)
    >>> process1.....
        3
    

    相关文章

      网友评论

          本文标题:python装饰器2018-11-19

          本文链接:https://www.haomeiwen.com/subject/kguofqtx.html