【发布时间】:2020-04-07 22:27:06
【问题描述】:
rlang::fn_fmls<- 允许我们修改函数签名:
f <- function(a, b, c) print(paste(a, c))
f_args <- rlang::fn_fmls(f)
f_args["b"] <- NULL
rlang::fn_fmls(f) <- f_args
f(1, 2)
#> [1] "1 2"
由reprex package (v0.3.0) 于 2020-04-07 创建
显然我们已经从函数的签名中删除了b。但是,如果我们打印函数本身:
f
#> function(a, b, c) print(paste(a, c))
b 仍然出现在其签名中。使用args(f)(仅打印签名)实际上有效,b 被省略。
我应该怎么做才能正确打印函数(带正文),省略b?
【问题讨论】:
-
@akrun 是的,我在我的问题中提到了这一点。有没有办法修改简单的
f? -
检查
attr(f, 'srcref')。