Bom dia.
Fiquei com dúvida na questão de herança. A herança não seria para reduzir repetição de código? Pois bem, no código abaixo que esta nos exemplos da Caelum, não vejo redução na repetição de código, pois temos que escrever novamente os atributos da classe base na subclasse no init e ainda usar o super().
class Funcionario:
def __init__(self, nome, cpf, salario):
self._nome = nome
self._cpf = cpf
self._salario = salario
class Gerente(Funcionario):
def __init__(self, nome, cpf, salario, senha, qtd_funcionarios):
super().__init__(nome, cpf, salario)
self._senha = senha
self._qtd_funcionarios = qtd_funcionarios
Se eu tiver n subclasses herdando de funcionário e, depois tiver que acrescentar um atributo em funcionário, vou ter que inserir esse novo atributo em todas as subclasses manualmente.
Estou começando agora em Python. É isso mesmo ou estou entendo de forma errada esse conceito?