ann <- Person$new("Ann", "black")
在上面的例子中(来自this Introduction),我怎么会得到“ann”?
例如,我需要一个方法ann $ getName,它将返回“ann”。
答案 0 :(得分:0)
我正在尝试做同样的事情,所以也许我可以澄清这个问题。 (对我来说)目标是给班级用户一些反馈。像这样的东西:
Person <- R6Class("Person",
public = list(
name = NULL,
hair = NULL,
initialize = function(name = NA, hair = NA) {
self$name <- name
self$hair <- hair
},
do_something_very_long=function(){
whoami <- self$getInstanceName() ## $getInstanceName() is the method I need to write !
message(paste("Please wait, processing object",whoami))
# Do a very long calculation...
}
)
)
然后我会在脚本中运行类似
的脚本#File batch_processing.R
first_in_line<-Person$new("Alice","Black")
next_customer<-Person$new("Bob","Red")
VIP<-Person$new("Charlie","Brown")
# etc ...
first_in_line$do_something_very_long()
next_customer$do_something_very_long()
VIP$do_something_very_long()
# etc ...
因此,我的(名义上的)用户可能会启动
$ R ~/batch_processing.R
或
R> source("batch_processing.R")
,并且在脚本运行时不会发生太多事情。因此,我希望获得一些反馈,以便当用户喝完咖啡回来时,他可以看着屏幕,看到计算机正在忙于处理VIP或next_customer。
很明显-一种方法是显式地为每个对象赋予唯一标识符(在这种情况下为$ name)。但是,在我的实际应用案例中,这不是很有意义,或者会重复对象名称(“模型1”,“模型2” ...),这有点浪费!