Python多重继承问题

标签 python multiple-inheritance tornado mixins

我正在尝试运行具有如下继承模式的 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 类可以调用特定的混入?

最佳答案

如果您提前知道CD 的名称,您可以直接调用它们的方法并显式传递self:

class E(C, D):
    def do_c_thing(self):
        # Call C's version
        C.some_method(self, ...)

    def do_d_thing(self):
        # Call D's version
        D.some_method(self, ...)

关于Python多重继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11912261/

相关文章:

Python 支持有限形式的多重继承。以什么方式限制?

python - Tornado:识别/跟踪 websocket 的连接?

python - Django:NoReverseMatch 位于 ' ' 。 ' ' 不是有效的 View 函数或模式名称

python - Heroku 迁移导致 : (staticfiles. E001) STATICFILES_DIRS 设置不是元组或列表

python - 带参数的多重继承

c++ - AtlComPtrAssign 需要什么?

python - 带共享 session 的 Django ORM 的 Tornado WebSocket

Python+Tornado vs Scala+Lift?

python - 部分字符串匹配时提取字符串-pandas

python - 名称以下划线开头的变量/方法是内部的还是 protected ?