function.py 文件源码

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

项目:peval 作者: fjarri 项目源码 文件源码
def filter_arguments(arguments, bound_argnames):
    """
    Filters a node containing function arguments (an ``ast.arguments`` object)
    to exclude all arguments with the names present in ``bound_arguments``.
    Returns the new ``ast.arguments`` node.
    """

    assert type(arguments) == ast.arguments

    new_params = dict(ast.iter_fields(arguments))

    new_params['args'], new_params['defaults'] = filter_arglist(
        arguments.args, arguments.defaults, bound_argnames)

    new_params['kwonlyargs'], new_params['kw_defaults'] = filter_arglist(
        arguments.kwonlyargs, arguments.kw_defaults, bound_argnames)

    vararg_name = arguments.vararg.arg if arguments.vararg is not None else None
    kwarg_name = arguments.kwarg.arg if arguments.kwarg is not None else None

    if vararg_name is not None and vararg_name in bound_argnames:
        new_params['vararg'] = None

    if kwarg_name is not None and kwarg_name in bound_argnames:
        new_params['kwarg'] = None

    return ast.arguments(**new_params)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号