是否可以在__init__函数中有条件地从一组固定的父类集中选择一个类的父类?

是否可以在__init__函数中有条件地从一组固定的父类集中选择一个类的父类?,第1张

是否可以在__init__函数中有条件地从一组固定的父类集中选择一个类的父类?

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__
是实现的,第一个参数之后的所有内容都传递给委托类型的构造函数。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5673821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存