我有一堂课。
class A(object):
def __init__(self,a,b,c,d,e,f,g,...........,x,y,z)
#do some init stuff
我有一个子类需要一个额外的参数(最后一个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
似乎写所有这些样板代码很愚蠢, 比如将B
的Ctor中的所有参数传递到内部调用A
的Ctor中, 因为对A
的Ctor做出的每个更改都必须应用于B
中的另外两个位置。
我猜Python有一些处理这种情况的习语,但我不知道。你能指导我吗?
我的最佳猜测是为A创建一种类似于复制构造函数的东西,然后将B的代码更改为...
class B(A):
def __init__(self,instanceOfA,W):
A.__copy_ctor__(self,instanceOfA)
self.__W=W
这适合我的需求,因为当给出父类的实例时,我总是创建子类,虽然我不确定这是否可能...