我正在尝试为以下问题找到合适的继承配置:
我的基本方法是一个抽象类3:
class Agent():
__metaclass__ = abc.ABCMeta
def __init__(self):
@abc.abstractmethod
def bidding_curve(self):
@abc.abstractmethod
def evaluate_bidding_curve(self):
@abc.abstractmethod
def action(self):
代理可以使用可执行文件(dymo)或FMU(C源代码的zip文件)进行模拟。因此,我创建了两种不同类型的代理,它们继承了基本代理,并实现了它们与模拟进行通信的方式。这是dymo仿真环境的实现,但FMU也是如此。在
^{pr2}$DymoAgent和FMUAgent决定了我的Agent将如何与模拟环境交互。在
接下来,我需要代理的实现来确定代理将如何与应用程序交互。但是,我希望这种交互独立于仿真环境。E、 我想创建一个可以与加热器应用程序通信的代理,并实现这样做的逻辑。在
class Heater(WhatAgentShouldIUseHere):
pass
我希望这个Heater类实现Agent基类的抽象方法和Dymo或FMUAgent的实现,这样它就知道如何与模拟交互。但是我不想编写两个Heater类,它们具有相同的逻辑(因此基本上是相同的代码)继承自不同的模拟代理。我在这张图中总结了这个问题:
有没有一种方法可以使用继承来防止这种情况发生?在
/阿诺
使
Heater
成为一个简单对象,在其构造函数中接受代理:相关问题 更多 >
编程相关推荐