首页 > 解决方案 > 将纯 Python 方法添加到扩展中实现的类?

问题描述

在一个 Python 库中,我正在研究一个ConcreteClassC由扩展实现的类。除此之外,它的所有方法都在纯 Python 中声明ClassC(metaclass=abc.ABCMeta)。到现在为止,所有的方法ClassC都是@abstractmethods,并且ConcreteClassC注册到calling ClassC.register(ConcreteClassC)。图书馆的用户应该ClassC只使用。提供了实例化对象的方法ClassC,并在幕后实例化了ConcreteClassC.

我想添加一个最好在纯 Python 中实现的新方法(即不在扩展中)。如果是类继承,我会将此方法添加为ClassC. 但到目前为止,它还ConcreteClassC不是 的“真正”子类ClassC,因为我的新方法不适用于用户实例化的对象。

在这种情况下是否有使用模式?由于这只是添加新功能(不更改现有功能),我宁愿对现有架构不做任何更改或更改最少。

标签: pythoninheritancedesign-patternsabstract-classpython-extensions

解决方案


推荐阅读