在 Incr Tcl 中,我通过将类的方法更改并重新评估到正在运行的 Tcl 解释器中,从而提高了编程效率,而无需重新启动应用程序。为此,我必须使用主体语法定义类定义之外的方法,并将主体定义重新评估到正在运行的 Tcl 解释器中。这很好用。令人惊讶的是,显然是设计使然,在Incr Tcl中,
一个类只能定义一次,尽管类方法和过程的主体可以一次又一次地定义以进行交互式调试。
然而,在开发过程中,我很自然地将方法(重构)拆分为两个或多个附加方法,以便在同一个类中定义。
我想找到一种方法来强制将方法添加到正在运行的 Tcl 解释器中的现有类:
- 无需将类定义删除并重新评估到正在运行的 Tcl 解释器中,
- 无需重新启动包含要扩充的 Incr Tcl 类的现有对象实例的 Tcl 应用程序,并且
- 没有从所述 Tcl 解释器中删除现有对象的结果。
我只需要它作为开发/调试仪式,而不是生产代码(即,我不需要以编程方式动态添加方法)。我会接受黏糊糊的、邪恶的、后门的答案。更改 Incr Tcl 的生产副本以添加其他行为是不切实际的,因为不幸的是,我必须使用的 Incr Tcl 的二进制文件静态绑定到正在运行的进程中,并且无法通过某些共享库巫术卸载和重新加载。