我有以下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
答案 0 :(得分:0)
在问了这个问题之后,我在其他地方得到了答案,所以这里有:
import types
c.foo = types.MethodType(B.foo, c)
答案 1 :(得分:0)
您可以明确调用未绑定的方法:
>> B.foo(c)
2