我知道Java抽象类可能包含使用或不使用实现声明的方法的混合。
关于python模拟抽象类可以这么说吗?
到目前为止,我在网上收集的示例都没有实现。我正在尝试使用Python维护良好的编码习惯,并且想知道pythonic的方式。
[您应该注意,抽象方法/类不是Python中的核心语言功能,就像Java中一样,尽管可以使用ABC
(抽象基类)和@abstractmethod
装饰器来模拟这种行为。
但是,类似于Java,这种方法很好。您的非抽象方法将照常从您的超类继承,并且如果使用@abstractmethod
装饰器声明为抽象,则抽象方法将需要显式的子类实现only。否则,Python不会抱怨子类中没有实现“抽象”方法。值得研究涵盖此内容的Abstract Base Class文档。
如果需要,可以在子类中重写继承的非抽象方法,如果在继承层次结构中进一步需要某些额外的特定逻辑,则可以提供新的实现。