1
resposta

[Projeto] Meu Exercício

class Banco:
    def __init__(self, nome, endereco):
        self._nome = nome
        self._endereco = endereco
    
    def __str__(self):
        return f'Nome: {self._nome}, endereco: {self._endereco}'

    @property
    def nome(self):
        return self._nome
    
    @property
    def endereco(self):
        return self._endereco

itau = Banco('Itau', 'Itajai')

print(itau)
print(itau.nome)
print(itau.endereco)
#----------------------------------------------------------------
from banco import Banco

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

    def __str__(self):
        return f'{super().__str__()}, numero: {self.numero}'

    @property
    def numero(self):
        return self._numero
    
bradesco = Agencia('Bradesco', 'Navegantes', 1234)

print(bradesco)
print(bradesco.nome)
print(bradesco.endereco)
print(bradesco.numero)
1 resposta

Parabéns pelo exercício. Herança e modularização bem aplicadas com o uso de @property, a referência ao construtor da superclasse com super e sua reutilização.

Única recomendação, em termos de praticidade, é encapsular o código de teste dos arquivos em um método main() e usar no final dos arquivos o famoso if __name__ == '__main__'.

Por exemplo, no arquivo banco.py:

def main():
    itau = Banco('Itau', 'Itajai')
    
    print(itau)
    print(itau.nome)
    print(itau.endereco)

if __name__ == '__main__':
    main()