Python提供了很多灵活性,但是您正在与该语言提供的类机制进行对抗。无法“不费吹灰之力”地执行此 *** 作,因为您将在该语言提供的功能之上实现自己的机制。老实说,只需忘记使用多重继承,因为
继承不是您要描述的 ,您需要一个代理对象来委派给适当的对象。根据您的特定情况,这看起来可能会有所不同,但这可以帮助您:
In [1]: class A: ...: def x (self): ...: print('a') ...: ...: class B: ...: def x (self): ...: print('b') ...: ...: class C: ...: def __init__(self, type_, *args, **kwargs): ...: self.__wrapped = type_(*args, **kwargs) ...: def __getattr__(self, attr): ...: return getattr(self.__wrapped, attr) ...: ...:In [2]: C(A).x()aIn [3]: C(B).x()b
注意,方法
C.__init__是实现的,第一个参数之后的所有内容都传递给委托类型的构造函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)