[英]Inherit from two classes (either or)
我对类继承有以下问题。 给定类A
, B
, C
如下
class A(object):
...
class B(A):
...
class C(A):
...
我想要一个D
类,它可以从B
或C
继承,具体取决于用例。 现在,我已经通过动态类定义解决了这个问题:
def D(base_class, parameter1, parameter2):
class D(base_class):
...
return D(parameter1, parameter2)
这是正确的方法,还是有更好的方法来解决这个问题?
与其让D
创建一个类并返回一个实例,不如让它只返回该类,然后您可以根据需要使用它来创建多个实例。
def make_D(base_class):
class D(base_class):
...
return D
DB = make_D(B)
DC = make_D(C)
d1 = DB(...)
d2 = DC(...)
d3 = DC(...)
此时,您应该考虑是否真的需要一个工厂函数来定义您的子类,而不是简单地直接定义DB
和DC
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.