Python中的动态多重继承

时间:2015-08-19 19:38:08

标签: python inheritance dynamic

我有“后端”和“类型”的组合。

后端:Cloudant,ElasticSearch,File,ZODB

类型:新闻,(可能是其他人)

所以我现在定义类:

Plugin
PluginCloudant (which inherits from Plugin)
PluginNews (which inherits from Plugin)

然后组合课程:

class PluginCloudantNews(PluginCloudant, PluginNews)

现在,我想动态地允许人们定义一个服务(以插件作为参数)。

服务的实现只依赖于后端,因此似乎应该自动使用该类的一部分。

我的观点是,我不应该将PluginCloudantNews作为参数提供给服务(因为Cloudant部分是Cloudant服务中的逻辑结果,所以而不是具体的PluginNews

如何将PluginNews传递给Service类(类型),但最终仍然使用PluginCloudantNews功能?

某种动态继承...

它应该将PluginCloudant与类PluginNews或其他类型粘合在一起,这些类都是预先定义的。

1 个答案:

答案 0 :(得分:1)

我不确定我是否已完全理解您的问题,但您可以动态地&#34;使用内置<div class="round-egg"> i </div> .round-egg { font-size: 14px; background: white; color: #8DC641; border-radius: 10px; cursor: help; border-bottom: none !important; border: 4px solid #8DC641; width: 20px; height: 20px; text-align: center; } 构造类对象。以下两行产生相同的结果:

type

如您所见,class PluginCloudantNews(PluginCloudant, PluginNews): pass PluginCloudantNews = type('PluginCloudantNews', (PluginCloudant, PluginNews), {}) 有三个参数:新类的名称,要继承的基类列表,带有要添加到新类的属性的字典。