1

我创建了一个自定义类和打印方法:

#custom class
myClass <- setClass(Class = "myClass",
                    slots = c(a = "character"),
                    prototype = list(a = character()))
#custom print method
print.myClass <- function(theObject){
    print("2")
}
#create a variable for testing
test <- myClass(a = "1")

如果我使用它工作正常print(test)

> print(test)
[1] "2"

但是,如果我只是在没有 的情况下运行变量本身print(),它会以不同的方式显示。

> test
An object of class "myClass"
Slot "a":
[1] "1"

当我在不使用的情况下运行自定义打印方法时,我应该怎么做才能使它以相同的方式工作print()

谢谢!

4

1 回答 1

3

只是自己想出来的。对于 S4 对象,您需要使用show().

如果我使用它,它会起作用:

setMethod(f = "show",
          signature = "myClass",
          definition = function(object){
              print("2")
          })

有用:

> test
[1] "2"
于 2018-10-17T03:15:45.597 回答