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 ×1