【发布时间】:2011-06-24 23:21:09
【问题描述】:
定义一个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)'放在打印方法中(从对象的名称中获取'foo' )。是的,您可以在 S3 中对函数进行子类化。我想可能还有其他陷阱..
【问题讨论】: