繁体   English   中英

如何从子类引用到另一个类的子类

[英]How to refer from child class to child class of another class

我知道问题的标题非常令人困惑。 我无法想出任何有意义的事情。 让我解释一下。

我有两个课程,我们称他们为A和B:

class A(object):
    def get_instance_of_b():
        return B()

class B(object):
    pass

在其中我有一个引用B类实例的方法。

我有4个继承自A的类和另外4个继承自B类的类。现在我想要的是避免重写get_instance_of_b()方法。 A1类(A的孩子)应该得到B1的实例(B的孩子),依此类推。

最好的方法是什么? 或者我的课程结构可能出错?

给出我的类所做的上下文:类A处理数据,类B验证输入参数。 A类的所有孩子都有一些一般参数,但是儿童班也有自己的特定参数。

你应该有一个A类(你的“处理器”)到你的B类(你的“验证器”)的显式映射,并以这种方式进行查找。

class A(object):
    def get_validator(self):
        return validators[self.__class__]()

class A1(A):
    ...

class B(object):
    ...

class B1(B):
    ...

validators = {A:B, A1:B1}

并使用如下:

>>> a1 = A1()
>>> a1.get_validator()
<__main__.B1 object at ...>

暂无
暂无

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

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