我在R中使用S4以及定义初始化函数的内容。但是 .Object 效果很好,并且 object 将失败。为什么?
############ method1: Bad
setMethod("initialize", "XY2Z", function(object,...){
object <- callNextMethod()
object@nodes <- getNodes(object)
object
})
########### method2: Good
setMethod("initialize", "XY2Z", function(.Object,...){
.Object <- callNextMethod()
.Object@nodes <- getNodes(.Object)
.Object
})
方法1:conformMethod中的错误(签名,mnames,fnames,f,fdef,definition):
带'initialize'标记的'.Object =“ XY2Z”'的方法:方法定义里所忽略的正式参数(.Object =“ XY2Z”,... =“ XY2Z”)不能存在于标记
方法2:运行正常
答案 0 :(得分:0)
我不确定为什么错误仅在一种情况下出现,但是这里可能是解决方法
initialize <- function(object,...) 0
setGeneric("initialize")
# method 1 (doesn't give an error)
setMethod("initialize", "XY2Z", function(object,...){
object <- callNextMethod()
object@nodes <- getNodes(object)
object
})