美文网首页
python 用装饰器给函数增加参数

python 用装饰器给函数增加参数

作者: SkTj | 来源:发表于2019-12-04 11:06 被阅读0次

    from functools import wraps
    import inspect

    def optional_debug(func):
    if 'debug' in inspect.getargspec(func).args:
    raise TypeError('debug argument already defined')

    @wraps(func)
    def wrapper(*args, debug=False, **kwargs):
        if debug:
            print('Calling', func.__name__)
        return func(*args, **kwargs)
    
    sig = inspect.signature(func)
    parms = list(sig.parameters.values())
    parms.append(inspect.Parameter('debug',
                inspect.Parameter.KEYWORD_ONLY,
                default=False))
    wrapper.__signature__ = sig.replace(parameters=parms)
    return wrapper

    相关文章

      网友评论

          本文标题:python 用装饰器给函数增加参数

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