decorations.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:easypy 作者: weka-io 项目源码 文件源码
def kwargs_as_needed(func):
    """
    If function does not specify **kwargs, pass only params which it can accept
    """
    spec = inspect.getfullargspec(inspect.unwrap(func))
    acceptable_args = set(spec.args or ())
    if isinstance(func, MethodType):
        acceptable_args -= {spec.args[0]}

    @wraps(func)
    def inner(*args, **kwargs):
        if spec.varkw is None:
            kwargs = intersected_dict(kwargs, acceptable_args)
        return func(*args, **kwargs)

    return inner
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号