当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R findClass 查找类定义


R语言 findClass 位于 methods 包(package)。

说明

查找类的函数:isClass 测试类; findClass 返回包含该类的包的名称; getClasses 返回环境中所有类的名称,通常是命名空间。要检查类的定义,请使用 getClass

用法

isClass(Class, formal=TRUE, where)

getClasses(where, inherits = missing(where))

findClass(Class, where, unique = "")

## The remaining functions are retained for compatibility
## but not generally recommended

removeClass(Class, where)

resetClass(Class, classDef, where)

sealClass(Class, where)

参数

Class

类的字符串名称。这些函数通常采用类定义而不是字符串。要将类限制为特定包中定义的类,请设置字符串的packageSlot

where

environment,在其中搜索类定义。默认为调用函数的顶级环境。当从命令行调用时,这会产生使用搜索列表中的所有包环境的效果。

要将搜索限制为特定包中的类,请使用 where = asNamespace(pkg)pkg 包名称;要将其限制为导出的类,请在包附加到搜索列表后使用where = "package:pkg"

formal

logical 是否需要正式定义?对于 S 兼容性,始终视为 TRUE

unique

如果 findClass 需要类的唯一位置,则 unique 是解释搜索目的的字符串(并用于警告和错误消息)。默认情况下,可以有多个位置,并且该函数始终返回一个列表。

inherits

在调用 getClasses 时,返回的值应该包括 where 的所有父环境,还是仅包含该环境?如果省略where,则默认为TRUE,否则默认为FALSE

classDef

对于 resetClass ,可选的类定义。

职能

isClass

这是正式定义的类的名称吗?

getClasses

where 上正式定义的所有类的名称。如果不带参数调用,则从调用函数可见的所有类(如果从顶层调用,则为搜索列表上任何环境中的所有类)。 where 参数用于仅在特定包中搜索。

findClass

类定义所在的环境列表Class被发现。如果where提供后,仍然返回一个列表,或者是空的,或者包含对应于的环境where。默认情况下,当从R会话、全局环境和所有当前附加的包都会被搜索。

如果 unique 作为字符串提供,如果有多个可见定义(使用字符串来标识调用目的),findClass 将发出警告,如果找不到定义,将生成错误。

保留其余函数是为了向后兼容和内部使用,但通常不推荐。

removeClass

删除该类的定义。如果该类位于另一个包中,则不能使用此方法,并且在定义包中的类的源代码中很少需要此方法。

resetClass

重置类的内部定义。对于不在这个包中的类定义来说是不合法的,否则很少需要。

sealClass

通过在类定义中设置相应的槽来密封指定类的当前定义,以防止进一步更改。这很少使用,因为加载的包中的类是通过锁定其名称空间来密封的。

参考

Chambers, John M. (2016) Extending R, Chapman & Hall. (Chapters 9 and 10.)

Chambers, John M. (2008) Software for Data Analysis: Programming with R Springer. (Chapter 9 has some details not in the later reference.)

也可以看看

getClass , Classes_Details , Methods_Details , makeClassRepresentation

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Find Class Definitions。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。