0
respostas

[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)