我知道问题的标题非常令人困惑。我无法想出任何有意义的事情。让我解释一下。
我有两个课程,我们称他们为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类的所有孩子都有一些一般参数,但是儿童班也有自己的特定参数。
答案 0 :(得分:0)
您应该明确地将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 ...>