4

我正在使用RubyPython导入 Python 模块。我是在构造RubyPython.start函数(initializeRubyPython.stop

class QDSHiveHelper
    def initialize
        RubyPython.start
        qds = RubyPython.import('blah')
        ...
    end
    def do_something
        qds.some_function
        ...
    end 
    def finalize
        RubyPython.stop
    end
end

有人可以解释一下如何做到这一点吗?ObjectSpace.define_finalize似乎气馁并且有一些陷阱(不能使用闭包等)。我也可以就这样RubyPython悬空而不叫它stop,但我不知道会产生什么后果。最好的出路是什么?

4

1 回答 1

4

有一个称为ObjectSpace.define_finalizer的钩子,当对象被销毁时会调用它。

于 2013-06-17T09:53:22.223 回答