有没有办法在Python中的多继承对象中访问重写方法?

时间:2013-01-15 10:29:07

标签: python multiple-inheritance

我有以下Python代码。如何在不更改类定义的情况下让c返回2?或者说不同。如何在具有多重继承的对象中访问重写方法?

class A(object):
    def foo(self):
        return 1

class B(object):
    def foo(self):
        return 2

class C(A, B):
    def __init__(self):
        A.__init__(self)
        B.__init__(self)

c = C()
c.foo() # Returns 1

2 个答案:

答案 0 :(得分:0)

在问了这个问题之后,我在其他地方得到了答案,所以这里有:

import types
c.foo = types.MethodType(B.foo, c)

答案 1 :(得分:0)

您可以明确调用未绑定的方法:

>> B.foo(c)
2