0

我想在我自己的对象中访问compute_group()父方法。ggproto这是两种不同的工作方法,但不知道是否有“正确”的方法:

  1. self$super()$compute_group(...)
  2. ggproto_parent(<parent>, self)$compute_group(...)

有什么(强烈的)意见吗?

4

1 回答 1

1

我只是在这里建议正确的方法是使用第二种方法。一个原因是文档?ggproto如下:

要显式调用父级中的方法,请使用 ggproto_parent(Parent, self)。

第二个原因是 ggplot2 源代码从不使用self$super()$method(),从中您可以推断出它不打算以这种方式使用。

要考虑的第三种选择是OtherClass$compute_group()直接在您的代码中调用。这应该可行,因为 ggproto 类被设计为无状态的,因此如果您遵守无状态规则,这应该是安全的。ggplot2书中ggproto_parent()提到,由于其清晰性和同等安全性,这种模式比方法更普遍。

于 2021-10-06T07:27:33.280 回答