1
resposta

[Projeto] Hora da prática: criando classes, construtores e métodos

#ARQUIVO 1

class Livro:
    lista_livros = [] 

    def __init__(self, titulo: str, autor: str, ano_publicacao: int, disponivel: bool = True):
        self._titulo = titulo
        self._autor = autor
        self._ano_publicacao = ano_publicacao
        self._disponivel = disponivel
        Livro.lista_livros.append(self)

    def __str__(self):
        return f'{self._titulo.ljust(25)} | {self._autor.ljust(25)} | {str(self._ano_publicacao).ljust(10)} | {"Disponível" if self._disponivel else "Indisponível"}'

    def emprestar(self):
        self._disponivel = False

    def esta_disponivel(self):
        return self._disponivel

    @staticmethod
    def verificar_disponibilidade(ano: int):
        return [livro for livro in Livro.lista_livros if livro._ano_publicacao == ano and livro._disponivel]

Biblioteca.py

from modelos.Exec2 import Livro


livro1 = Livro('A Paciente Silenciosa','Alex Michaelides', 2019)
livro2 = Livro('Fortaleza Digital','Dan brown', 1998)


livro1.emprestar()


print(f"{livro1._titulo} está disponível? {livro1.esta_disponivel()}")
print(f"{livro2._titulo} está disponível? {livro2.esta_disponivel()}")


disponiveis_1998 = Livro.verificar_disponibilidade(1998)
print("\nLivros disponíveis:")
for l in disponiveis_1998:
    print(l)

Main.py

from livro import Livro

livro3 = Livro("O Hobbit", "J.R.R. Tolkien", 1937)
livro4 = Livro("1984", "George Orwell", 1949)

print("\nLivros cadastrados:")
print(livro3)
print(livro4)
1 resposta

Oi, Karoline! Tudo bom?

Excelente! Siga praticando com os desafios e sempre compartilhe conosco.

Você soube aplicar um encapsulamento com atributos privados de forma eficiente, aproveitou o uso de métodos estáticos para implementar uma busca por critérios específicos e entendeu como o método especial __str__ é essencial para personalizar a exibição dos objetos na saída.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

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

Abraço e bons estudos!

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