定义一个 S3 类“bar”的对象和一个打印方法:
foo=list(1)
class(foo) <- c("bar")
print.bar <- function(x,...){
cat("print.bar says this was ",deparse(substitute(x)),"\n")
}
现在 print(foo) 这样做:
> print(foo)
print.bar says this was foo
很好,但自动打印失败:
> foo
print.bar says this was structure(list(1), class = "bar")
我猜这与将行评估为顶级表达式的方式有关。快速搜索 R-devel 无济于事。谁知道怎么修它?
我想要这个名字的原因是因为我定义的是一个函数,并且我希望能够将“try foo(2)”放在 print 方法中(从对象的名称中获取“foo”)。是的,您可以在 S3 中对函数进行子类化。我想可能还有其他陷阱..