1

参照クラスのインスタンスに、そのメソッド定義の 1 つを忘れるように指示する方法を探しています。たとえば、クラスMyReferenceClassとインスタンスを作成するmy_objectと、メソッドprint_helloを呼び出すことができ、すべてが機能します。

MyReferenceClass <- setRefClass("MyReferenceClass",
    methods = list(
        print_hello = function(){
            print("hello")
        }
    )
)
my_object <- MyReferenceClass$new()
my_object$print_hello() # "hello"

新しいメソッド ( ) を追加してクラス定義を更新するprint_goodbyeと、既存のオブジェクトがそれを使用できるようになります。しかし、以前に定義したメソッド ( print_hello) を変更すると、更新されません。

MyReferenceClass <- setRefClass("MyReferenceClass",
    methods = list(
        print_hello = function(){
            print("hello_again")
        },
        print_goodbye = function(){
            print("goodbye")
        }
    )
)
my_object$print_goodbye() # "goodbye" => it works
my_object$print_hello() # "hello" => it doesn't work

my_objectの定義を忘れるように伝える方法はありprint_helloますか? これは機能しません:my_object$print_hello <<- NULL

4

2 に答える 2

1

my_class@generator$def@refMethods を活用する

updateここで行ったように、元のクラスにメソッドを含めるのはどうでしょうか。

参照クラス インスタンスのクラス定義の手動変更

于 2014-04-03T17:55:01.550 に答える