避免在子类中指定所有参数
我有一堂课:
class A(object):
def __init__(self,a,b,c,d,e,f,g,...........,x,y,z)
#do some init stuff
我有一个子类,需要一个额外的arg(最后一个W
)
class B(A):
def __init__(self.a,b,c,d,e,f,g,...........,x,y,z,W)
A.__init__(self,a,b,c,d,e,f,g,...........,x,y,z)
self.__W=W
编写所有这些样板代码似乎很愚蠢,例如,将所有args从B
‘Ctor传递到对A
‘ctor的内部调用,因为自那时以来,对’ctor的每次更改都A
必须应用于’ctor
B
‘代码中的其他两个地方。
我猜想python有一些习惯用法可以处理我不知道的情况。你能为我指出正确的方向吗?
我最好的预感是为A提供一种Copy-Ctor,然后将B的代码更改为
class B(A):
def __init__(self,instanceOfA,W):
A.__copy_ctor__(self,instanceOfA)
self.__W=W
这将满足我的需求,因为在给定父类的实例时,我总是创建子类,尽管我不确定是否可能…