Hello, On Feb 13, 2014, at 2:16 PM, Ross Boylan <r...@biostat.ucsf.edu> wrote:
> Redefining methods of a refClass does not change the methods for existing > instances. I found this somewhat surprising, and also pretty inconvenient > for debugging. > > The documentation for reference classes does say that their methods should be > minimalist, which I suppose is partly because of this behavior. > > Is there a way around this behavior apart from passing the pieces of the old > instance to the new constructor, or putting all computations in not class > functions? I am interested in learning how others deal with this issue, too. I use the latter method during development. I write simple wrapper methods around the functions I am working on. Once development becomes stable, I often choose to incorporate the function in the method but not always. It's not a great system but it allows me to tweak the function until I get it right without a lot of fussing. To my simpleton way of thinking, it seems like changes to the Reference Class definition might be 'pushable' into a particular instance's environment. I don't know how to make that happen in a user friendly way. foo_f = function(x, a = 3) {a * x} foo <- setRefClass("foo") foo$methods(f = function(x, ...) {foo_f(x, ...)}) x <- foo$new() x$f(10) # [1] 30 x$f(10, a = 2) # [1] 20 Cheers, Ben > >> foo <- setRefClass("foo", methods=list(f=function(x) 3*x)) >> a <- foo() >> a$f(10) > [1] 30 >> foo <- setRefClass("foo", method=list(f=function(x) 2*x)) >> a$f(10) > [1] 30 >> b <- foo() >> b$f(10) > [1] 20 > > Ross Boylan > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. Ben Tupper Bigelow Laboratory for Ocean Sciences 60 Bigelow Drive, P.O. Box 380 East Boothbay, Maine 04544 http://www.bigelow.org ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.