繁体   English   中英

从两个类继承(要么)

[英]Inherit from two classes (either or)

我对类继承有以下问题。 给定类A , B , C如下

class A(object):
    ...

class B(A):
    ...

class C(A):
    ...

我想要一个D类,它可以从BC继承,具体取决于用例。 现在,我已经通过动态类定义解决了这个问题:

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(...)

此时,您应该考虑是否真的需要一个工厂函数来定义您的子类,而不是简单地直接定义DBDC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM