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