比如C同时继承A和B:
class A(object):
def fn(self):
print('run A')
class B(object):
def fn(self):
print('run B')
class C(A,B):
pass
其中A和B都有fn这个方法,这个时候如果通过C类来调用fn函数:
s=C()
s.fn()
个人测试了一下,默认会调用A类中的fn方法。但是如果我想调用B函数中的fn方法呢?这个时候应该怎么调用?
搜关键词Python MRO c3
https://www.python.org/download/releases/2.3/mro/
你描述的这种情况,class C中的fn函数是不是可能被重载了??
可以试试这种方式绕一下:
class A(object):
def fn(self):
print "call A fn"
class B(object):
def fn(sefl):
print "call B fn"
class C(A, B):
def fn(self):
B().fn()
c = C()
c.fn()