Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

Resolução de Atividade - 06 Mão na massa : herança e modularização

Com base no que vimos nessa aula sobre herança, crie uma classe Banco com dois atributos: nome e endereco. Em seguida, derive uma classe chamada Agencia que herda os atributos da classe Banco e inclua um atributo adicional chamado numero. Ambas as classes devem ter apenas o construtor.


atividade-n1\banco.py


class Banco:

    def __init__ (self, nome, endereco):

        self._nome = nome
        self._endereco = endereco

atividade-n2\agencia.py


from atividades_curso.atividade-N1.banco import Banco

class Agencia (Banco):

    def __init__ (self, nome, endereco, numero):

        super().__init__ (nome, endereco)
        self.numero = numero

Nota: o meu VS Code apontou algo na importação no arquivo agencia.py; isso é normal? Há alguma inconsistência?

2 respostas

Olá, Victor! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou a herança para estruturar classes em Python, utilizou muito bem o construtor com super() para inicializar atributos da classe base e ainda compreendeu a importância da organização modular separando cada classe em arquivos distintos para maior clareza.

Uma dica interessante para o futuro é adicionar métodos de exibição que mostrem os dados da agência e do banco de forma mais legível. Assim:

class Banco:
    def __init__(self, nome, endereco):
        self._nome = nome
        self._endereco = endereco

    def exibir_informacoes(self):
        return f"Banco: {self._nome}, Endereço: {self._endereco}"


class Agencia(Banco):
    def __init__(self, nome, endereco, numero):
        super().__init__(nome, endereco)
        self.numero = numero

    def exibir_informacoes(self):
        return f"Agência {self.numero} - Banco: {self._nome}, Endereço: {self._endereco}"

Isso faz com que você consiga visualizar os dados de forma organizada e reutilizar os métodos em diferentes contextos.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Encapsular atributos: usar property para controlar acesso.
  • Adicionar testes unitários: validar criação e herança das classes.
  • Explorar polimorfismo: sobrescrever métodos para comportamentos específicos em subclasses.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: o que você acha mais interessante evoluir neste projeto, criar novas subclasses como AgenciaDigital com comportamentos próprios ou focar em polimorfismo para tratar diferentes tipos de agência de forma genérica?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Victor, você pode colocar a mensagem completa do VS Code aqui?

Assim vou conseguir analisar o cenário de uma maneira melhor.

Mas creio não ser algo grave ou algum impedimento.