如何导入对象类定义?

问题描述 投票:0回答:1

当我导入类定义时,我不清楚到底发生了什么。如以下代码片段所示,一开始我的环境中没有一个名为“Wave”的类。然后我创建对象

wave
,之后定义的类“Wave”在我的控制台环境中可用。
wave
不是类 "Wave" 的对象。它是什么?
诸如
findClass()
之类的函数找不到“Wave”类。它“藏”在哪里?
wave
到底是什么,因为它不是一个定义的类?

# verify "Wave" class doesn't exist
>> foo <- new("Wave")
Error in getClass(Class, where = topenv(parent.frame())) : 
  “Wave” is not a defined class
# this doesn't work
>> foo <- new("tunerR::Wave")
Error in getClass(Class, where = topenv(parent.frame())) : 
  “tunerR::Wave” is not a defined class

# this does work
    >> wave <- tuneR::Wave
    >>wave
   standardGeneric for "Wave" defined from package "tuneR"
function (left, ...) 
standardGeneric("Wave")
<bytecode: 0x7fbdc6c84020>
<environment: 0x7fbdc6c638a8>
Methods may be defined for arguments: left
Use  showMethods(Wave)  for currently available ones.

>>foo <- new("Wave")
 class(foo)
[1] "Wave"
attr(,"package")
[1] "tuneR"

>>bar <- new('wave')
Error in getClass(Class, where = topenv(parent.frame())) : 
  “wave” is not a defined class
r class import
1个回答
0
投票

我不知道

tuneR
包,但看起来
tuneR::Wave
"Wave"
对象的构造函数。所以
wave
是同一构造函数的另一个副本。我不确定它是一个构造函数,打印它只是表明它是一个通用函数。但
wave
对象不是一个类,它是一个函数。

"Wave"
中还有一个名为
tuneR
的类,S4类是对象,但我不认为该对象是类。

© www.soinside.com 2019 - 2024. All rights reserved.