我有一些使用 IPYWidgets 的代码。它在 Jupyter 笔记本/实验室中运行良好,但在通用 Python 控制台中不起作用。该代码由一个父类和几个子类组成。其中两个子类使用 IPYWidgets。
我删除了两个子类中的 IPYWidgets 代码,现在有一个父类和一组运行良好的子类。子类由父类在 init 函数中实例化。
我创建了从非 IPYWidgets 版本继承并添加 IPYWidgets 功能的新子类。我可以独立运行这些子类,它们也工作得很好。
我现在想要创建一个启用 IPYWidgets 的父类,该父类继承自非 IPYWidgets 父类。它需要实例化子类的 IPYWidgets 版本而不是非 IPYWidgets 版本。
最好的方法是什么?
要创建一个支持 IPYWidgets 的父类,该父类继承自非 IPYWidgets 父类并实例化子类的 IPYWidgets 版本,您可以按照以下步骤操作:
创建非IPYWidgets父类: 定义您的非 IPYWidgets 父类及其子类集。确保此类在没有 IPYWidgets 的情况下按预期工作。
创建IPYWidgets子类: 创建从其非 IPYWidgets 对应项继承的子类的 IPYWidgets 版本。这样,您就可以为非 IPYWidgets 和 IPYWidgets 功能提供单独的类。
创建IPYWidgets父类: 现在,创建一个从非 IPYWidgets 父类继承的启用 IPYWidgets 的父类。在 IPYWidgets 父类的 init 方法中,实例化子类的 IPYWidgets 版本。