如何调用R6父类中的函数,其中父函数依赖于其他重写的辅助函数
我试图在R6中创建一个类,它从其父类继承一个函数。但是,该函数依赖于在子类中被覆盖的其他“helper”函数 当我调用父函数时,我希望它使用父类中的helper函数,而不是子类中被重写的函数 下面是我的代码工作原理的模型:如何调用R6父类中的函数,其中父函数依赖于其他重写的辅助函数,r,inheritance,r6,R,Inheritance,R6,我试图在R6中创建一个类,它从其父类继承一个函数。但是,该函数依赖于在子类中被覆盖的其他“helper”函数 当我调用父函数时,我希望它使用父类中的helper函数,而不是子类中被重写的函数 下面是我的代码工作原理的模型: ParentClass <- R6Class( public = list( helper_fn = function() { print("Parent helper.") }, main_fn = function() { self$helpe
ParentClass <- R6Class(
public = list(
helper_fn = function() { print("Parent helper.") },
main_fn = function() { self$helper_fn() }
}
)
)
ChildClass <- R6Class(
inherit = ParentClass,
public = list(
helper_fn = function() { print("Child helper.") },
main_fn = function() { super$main_fn() }
)
)
有可能避免这种情况吗?或者这就是重写函数的工作方式?我可能无法帮助解决问题,但看起来是因为父级的
main\u fn
在self
上调用一个函数,而R将该函数定向到子级实例,而不是父级实例
你可以尝试从父母那里继承
helper\u fn
,并像childHelper\u fn
那样给孩子的助手取不同的名字,如果这对你想做的事情有效的话。我正在学习更多关于R6和继承的知识-那么你在这里期待什么呢?
child_class <- ChildClass$new()
child_class$main_fn()
# prints "Parent helper."