美文网首页
Python装饰器18-传参数给被装饰函数

Python装饰器18-传参数给被装饰函数

作者: dnsir | 来源:发表于2019-06-19 10:59 被阅读0次

    使用示例

    from functools import wraps
    
    def dec(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            kwargs['name'] = 'no'
            kwargs['value'] = 'v'
            return func(*args, **kwargs)
        return wrapper
    
    @dec
    def foo(p1, p2, p3, name, value, p4='a'):
        print('p1: {}, p2: {}, p3:{}, name: {}, value:{}, p4: {}'.format(
            p1, p2, p3, name, value, p4
        ))
    
    
    # p1,p2, p3是位置参数
    # name,value 是关键字参数
    # p4 默认参数
    
    foo('a', 'b', 'c')
    foo('a1', 'b1', 'c1', name = 'name')
    
    

    小结

    主要关注如果装饰器会修改被装饰函数的参数时,如何去定义被装饰的函数

    相关文章

      网友评论

          本文标题:Python装饰器18-传参数给被装饰函数

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