У меня есть класс:
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
Кажется глупым писать весь этот код котельной, например, передавать все аргументы из B
Ctor во внутренний вызов A
ctor, так как тогда каждое изменение на A
ctor должно применяться к двум другим помещается в код B
.
Я предполагаю, что у python есть некоторая идиома для обработки таких случаев, о которых я не знаю. Можете ли вы указать мне в правильном направлении?
Моя лучшая догадка заключается в том, чтобы иметь тип Copy-Ctor для A, а затем изменить B-код на
class B(A):
def __init__(self,instanceOfA,W):
A.__copy_ctor__(self,instanceOfA)
self.__W=W
Это соответствовало бы моим потребностям, поскольку я всегда создавал подкласс, когда мне давали экземпляр класса отца, хотя я не уверен, возможно ли это...