Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Herança sem super().__init__()

Olá, porque nas classes ContaCorrente e ContaPoupanca não é necessário inserir o código

 def __init__(self,codigo):
    super().__init__(codigo)

Os códigos são os seguintes:

class Conta:

  def __init__(self, codigo):
    self._codigo = codigo
    self._saldo = 0

  def deposita(self, valor):
    self._saldo += valor

  def __str__(self):
    return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo)

class ContaCorrente(Conta):

  def passa_o_mes(self):
    self._saldo -= 2

class ContaPoupanca(Conta):

  def passa_o_mes(self):
    self._saldo *= 1.01
    self._saldo -= 3
1 resposta
solução!

Olá Carlos, tudo bem com você?

Quando trabalhamos com herança de classe, será necessário utilizarmos o super() quando a classe filha possuir um método inicializador, __init__.

Quando a classe filha possui o método __init__ ele sobrescreve o método __init__ da classe mãe, nesse momento será necessário utilizamos o super() para acessar o método sobreposto pela classe filha.

Como no exemplo proposto na aula as classes ContaCorrente(Conta) e ContaPoupanca(Conta) não possuem um método inicializador não será necessário o uso do super().

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software