2016-03-08 47 views
1

我在R中使用默認包methods以定義面向對象的結構,並試圖找出如何獲取我的對象包含的類的列表。在R對象中顯示父類

例如,讓我們假設我的課高清如下:?

Tr1 = setRefClass("Tr1", contains = "Tr2") 

,我定義對象tr_ex = Tr1(),我怎麼能得到哪些類tr_ex包含..我可以嘗試is(tr_ex,"Tr2"),但它不是真的高效。

謝謝!

+0

'class()'返回對象的類,但不返回繼承結構;然而,你可以在大多數情況下推斷這一點。 –

回答

1

致電getClassDef您的對象的類。例如:

Tr2 <- setRefClass("Tr2", list(x="numeric")) 
Tr1 <- setRefClass("Tr1", contains="Tr2") 
tr_ex <- Tr1() 
getClassDef(class(tr_ex)) 

Reference Class "Tr1": 

Class fields: 

Name:  x 
Class: numeric 

Class Methods: 
    "import", ".objectParent", "usingMethods", "show", "getClass", "untrace", 
    "export", ".objectPackage", "callSuper", "copy", "initFields", 
    "getRefClass", "trace", "field" 

Reference Superclasses: 
    "Tr2", "envRefClass" 

在這種情況下,您所在的特定插槽是@refSuperClasses