我正在尝试为一个项目选择 Python,但我对如何使用抽象和类有点困惑。(我不是一个非常有经验的程序员,所以对这个问题的基本水平表示歉意。)我来自 Java/Ocaml 背景,我一直在尝试做的事情如下:我有一个图形的抽象类和一个graphadvanced(一个带有一些更花哨方法的图),看起来像这样
class AbstractGraph:
def method1(self):
raise NotImplementedError
...
class AbstractAdvanced:
def method2(self):
raise NotImplementedError
...
然后我有一个图表的实现:
class Graph(AbstractGraph):
def method1(self):
* actual code *
现在我的问题是:我可以做这样的事情吗?
class Advanced(AbstractAdvanced, AbstractGraph):
def method2(self):
*actual code, using the methods from AbstractGraph*
换句话说,如何根据 AbstractGraph 的方法抽象地定义 Advanced 的方法,然后以某种方式将 Graph 传递给构造函数以获取 Advanced 的实例,该实例使用 Advanced 的定义和 Graph 的实现?
就 Ocaml 而言,我试图将 AbstractAdvanced 和 AbstractGraph 视为模块类型,但我已经使用 python 玩了一点,我不知道如何让它工作。