className
位於 methods
包(package)。 說明
函數 className()
生成對類的有效引用,包括包含類定義的包的名稱。從類 "className"
返回的對象是引用類的明確方式,例如在調用 setMethod
時,以防存在該類的多個定義。
函數 "multipleClasses"
返回有關來自不同包的同名類的多個定義的信息。
用法
className(class, package)
multipleClasses(details = FALSE)
參數
class, package |
類的字符串名稱,以及它所屬的包的字符串名稱(可選)。如果參數 如果沒有包參數或槽,則該類的定義必須存在並將用於定義包。如果有多個定義,則會選擇一個定義並打印一條警告,給出其他可能性。 |
details |
如果 如果是 |
細節
內部使用的類定義表可以維護具有相同名稱但來自不同包的類的多個定義。如果遇到相同的類定義,則隻保留一個類定義;這種情況最常見於在 setOldClass
調用中指定的 S3 類。對於真正的類,如果兩個包碰巧獨立地使用相同的名稱,則通常不可避免地會出現多個類定義。
故意覆蓋另一個同名包中的類定義通常是一個壞主意。雖然R嘗試保留並使用這兩個定義(從版本 2.14.0 開始),總是可能出現歧義。更明智的做法是定義一個擴展現有類但具有不同名稱的新類。
值
對 className()
的調用返回類 "className"
中的對象。
對 multipleClasses()
的調用返回字符向量或類定義的命名列表。無論哪種情況,測試返回值的長度是否大於 0
都是檢查是否存在多重定義的類。
類中的對象
類 "className"
擴展了 "character"
並具有一個槽 "package"
,也是類 "character"
。
例子
## Not run:
className("vector") # will be found, from package "methods"
className("vector", "magic") # OK, even though the class doesn't exist
className("An unknown class") # Will cause an error
## End(Not run)
相關用法
- R classesToAM 計算類定義的超類的鄰接矩陣
- R callGeneric 從方法調用當前通用函數
- R cbind2 按列或行組合兩個對象
- R canCoerce 可以將對象強製為某個 S4 類嗎?
- R as 強製對象屬於某個類
- R language-class 表示未評估語言對象的類
- R BasicClasses 基本數據類型對應的類
- R findClass 查找類定義
- R setOldClass 注冊舊式 (S3) 類和繼承
- R ReferenceClasses 具有按引用處理的字段的對象(OOP 樣式)
- R MethodsList 方法列表對象
- R setGroupGeneric 創建函數的組通用版本
- R StructureClasses 基本結構對應的類
- R showMethods 顯示指定函數或類的所有方法
- R getMethod 獲取或測試方法的定義
- R slot 正式類對象中的槽
- R S4groupGeneric S4組通用函數
- R methodUtilities 用於方法和 S-Plus 兼容性的實用函數
- R getClass 獲取類定義
- R evalSource 使用源文件中的函數定義,無需重新安裝包
- R is 對象是來自類嗎?
- R isSealedMethod 檢查密封方法或類
- R GenericFunctions 管理通用函數的工具
- R dotsMethods 在方法簽名中使用...
- R S3Part 包含 S3 類的 S4 類
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Class names including the corresponding package。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。