【发布时间】:2012-08-08 09:08:59
【问题描述】:
我正在尝试运行具有如下继承模式的 python 代码:
A Object
| /\
| B C
| | |
| D E
\ | /
\|/
F
A = Base Handler
B = OAuth2 Mixin
C = OAuth Mixin
D = Facebook Graph Mixin
E = Twitter Mixin
B、C、D、E 中的函数名称重叠。 D 和 E 是 mixin,所以它们不应该独立产生。我该如何解决这个问题,以便 F 类可以调用特定的 mixin?
【问题讨论】:
-
如果你需要在 B 中调用一个函数的实现,即使 E 间接地从它扩展而来,你的代码在某处也有一些非常错误的地方。你真的打算扩展它们,而不是使用聚合吗?
-
如何聚合成一个类?这使用导入还是什么?附言我不需要调用B中的版本,我只需要调用C和D中的版本,它们同名。
-
然后在你的 E 类(作为属性)中有一个 C 和 D 的实例,而不是从这些实例扩展。
标签: python multiple-inheritance tornado mixins