"""
Classe representando um livro.
"""
class Livro:
# 1. Inicie um atributo chamado disponivel como True por padrão.
def __init__(self, titulo, autor, ano_publicacao):
self.titulo = titulo
self.autor = autor
self.ano_publicacao = ano_publicacao
self.disponivel = True
# 2. Retorna uma mensagem formatada com o título, autor e ano de publicação do livro.
def __str__(self):
return f'{self.titulo} por {self.autor}, publicado em {self.ano_publicacao}'
# 3. Define o atributo disponivel como False para indicar que o livro está indisponível.
def emprestar(self):
self.disponivel = False
# 4. Retorna uma lista dos livros disponíveis publicados nesse ano.
@staticmethod
def verificar_disponibilidade(livros, ano):
return [livro for livro in livros if livro.ano_publicacao == ano and livro.disponivel]
class Biblioteca:
def emprestar_livro(self, livro):
livro.emprestar()
print(f'O livro "{livro.titulo}" está disponível após o empréstimo: {livro.disponivel}')
class Main:
def run(self):
# 2. Crie duas instâncias da classe Livro e imprima essas instâncias.
livro1 = Livro("Dom Quixote", "Miguel de Cervantes", 1605)
livro2 = Livro("A Arte da Guerra", "Sun Tzu", "5th century BC")
print(livro1)
print(livro2)
# 3. Crie uma instância da classe, chame o método emprestar e imprima se o livro está disponível ou não após o empréstimo.
livro3 = Livro("1984", "George Orwell", 1949)
biblioteca = Biblioteca()
biblioteca.emprestar_livro(livro3)
# 7. No arquivo biblioteca.py, utilize o método estático verificar_disponibilidade para obter a lista de livros disponíveis publicados em um ano específico.
livros = [livro1, livro2, livro3]
livros_disponiveis_1605 = Livro.verificar_disponibilidade(livros, 1605)
print(f'Livros disponíveis publicados em 1605: {[livro.titulo for livro in livros_disponiveis_1605]}')
if __name__ == "__main__":
main = Main()
main.run()