小编And*_*ter的帖子

直接调用对象时获取传递给 print 的对象名称(不表示 print 函数)

print我试图为我的新对象定义 print 方法,并使用传递给using的对象名称deparse(substitute(y))。显式使用该print函数可以完美地工作:

obj <- structure(list(x = 1), 
                 class = "new_obj")

print.new_obj <- function(y){
  cat("New object name:\n")
  print(deparse(substitute(y)))
}

print(obj)
# New object name:
#   [1] "obj"
Run Code Online (Sandbox Code Playgroud)

但是,当对象本身通过名称调用时,生成的print函数不会检测到该名称:

obj
# New object name:
#   [1] "x"
Run Code Online (Sandbox Code Playgroud)

print当单独传递对象名称时,是否有一种标准方法可以更改隐式调用的行为?

编辑:已将函数参数更改为y表示正在传递的对象,以证明无论第二次调用中如何,都会返回“x”。

r

7
推荐指数
1
解决办法
212
查看次数

标签 统计

r ×1