我想在我自己的对象中访问compute_group()
父方法。ggproto
这是两种不同的工作方法,但不知道是否有“正确”的方法:
self$super()$compute_group(...)
ggproto_parent(<parent>, self)$compute_group(...)
有什么(强烈的)意见吗?
我只是在这里建议正确的方法是使用第二种方法。一个原因是文档?ggproto
如下:
要显式调用父级中的方法,请使用 ggproto_parent(Parent, self)。
第二个原因是 ggplot2 源代码从不使用self$super()$method()
,从中您可以推断出它不打算以这种方式使用。
要考虑的第三种选择是OtherClass$compute_group()
直接在您的代码中调用。这应该可行,因为 ggproto 类被设计为无状态的,因此如果您遵守无状态规则,这应该是安全的。ggplot2书中ggproto_parent()
提到,由于其清晰性和同等安全性,这种模式比方法更普遍。