在这种情况下,正确的做法是让另一个类仅实现所需的方法的“
mixin”方法。但是为了完整起见,它可以准确地回答您的要求,我补充说,是的,它可能具有与您想要的“部分继承”一样的行为(但请注意,这种概念在形式上并不存在)。
所有要做的就是在新类上添加成员,该成员引用您要在其中重复的方法或属性:
class Class2(object): def method(self): print ("I am method at %s" % self.__class__)class Class1(object): passclass 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)