[Rd] Caching bug with showMethods?
John Chambers
jmc at r-project.org
Wed Oct 18 15:31:21 CEST 2006
No, not a bug.
Inherited methods are never cached until they are needed, for rather
obvious efficiency reasons. See ?showMethods, under argument inherited=
If what you were trying to do was find out what method would be called
for class "B" without calling it, use selectMethod().
Seth Falcon wrote:
> showMethods isn't reporting inherited methods when it is first
> called. The methods are there and after calling them, showMethods
> gives the right output.
>
> Here is an example (using R-devel r39647):
>
> setClass("A", representation(x="numeric"),
> prototype=list(x=1))
>
> setClass("B", contains="A",
> prototype=list(x=2))
>
> setMethod("initialize", "A",
> function(.Object) {
> cat("In A's init\n")
> .Object at x <- .Object at x + 1
> .Object
> })
>
> setMethod("show", "A",
> function(object) cat("An A like thing. x =", object at x, "\n"))
>
> showMethods(classes="B") ## should give output, but doesn't
> showMethods(classes="A")
>
> aa <- new("A")
> bb <- new("B")
>
> aa
> bb
>
> ## Now it will give output
> showMethods(classes="B")
>
>
>
>
> --
> + seth
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
More information about the R-devel
mailing list