何时使用多继承与继承和方法重写?

时间:2015-07-31 18:56:29

标签: python oop inheritance design-patterns multiple-inheritance

我正在开发一个用于编写逻辑公式的Python框架。例如,如果我请求ab之间的互斥,则输出将是布尔公式:

"(a --> ¬b)^(b --> ¬a)"

此外,我想使用一些公式作为构建块来构建不同类型的公式,例如Linear Temporal Logic中的公式(它是布尔逻辑的超集)。

问题有两个:

  1. 我是否定义了一个基类(例如BooleanFormula),然后:
    • 添加生成特定公式的方法(例如 gen_mutex_formula(a, b))?
    • 或定义更多类(例如MutExFormula)继承自基础类(在我的示例中为BooleanFormula)并在其构造函数中生成公式?
  2. 当我想创建新类型的公式时,我是从(1)中的类继承并掩盖/覆盖它们的方法还是使用多重继承。后者的例子:

    class LTLMutExFormula(LTLFormula, MutExFormula)

  3. 在我设计框架时,我应该考虑什么标准和启发式?

    PS1。我已经在separate module中定义了逻辑运算符。

    PS2。以下是我在公式方面所做的工作:link to module on Github

0 个答案:

没有答案