在这种情况下,正确的做法是让另一个类仅实现所需的方法的“ mixin”方法。但是为了完整起见,它可以准确地回答您的要求,我补充说,是的,它可能具有与您想要的“部分继承”一样的行为(但请注意,这种概念在形式上并不存在)。
所有要做的就是在新类上添加成员,该成员引用您要在其中重复的方法或属性:
class Class2(object):
def method(self):
print ("I am method at %s" % self.__class__)
class Class1(object):
pass
class Class0(Class1):
method = Class2.__dict__["method"]
ob = Class0()
ob.method()
请注意,__dict__
在Python 2.x(最高2.7)中,需要从类中检索方法,这是由于进行了运行时转换以在方法中转换函数所致。在Python 3.0及更高版本中,只需更改以下行
method = Class2.__dict__["method"]
至
method = Class2.method