Boa noite, segue resolucao do código
Arquivo: livro.py
class Livro:
livros = [] # Lista para armazenar todas as instâncias de Livro
def __init__(self, titulo, autor, ano_publicacao):
self.titulo = titulo
self.autor = autor
self.ano_publicacao = ano_publicacao
self.disponivel = True
Livro.livros.append(self) # Adiciona cada instância à lista de livros
def __str__(self):
return f"Livro: {self.titulo} | Autor: {self.autor} | Ano de Publicação: {self.ano_publicacao}"
def emprestar(self):
self.disponivel = False
@staticmethod
def verificar_disponibilidade(ano):
livros_disponiveis = [livro for livro in Livro.livros if livro.ano_publicacao == ano and livro.disponivel]
return livros_disponiveis
Arquivo: biblioteca.py
from livro import Livro
# Criação de uma instância e teste do método emprestar
livro_biblioteca = Livro("Python in Practice", "Emily Coder", 2021)
print(f"Antes de emprestar (biblioteca): Livro disponível? {livro_biblioteca.disponivel}")
livro_biblioteca.emprestar()
print(f"Depois de emprestar (biblioteca): Livro disponível? {livro_biblioteca.disponivel}")
# Utilizando o método estático verificar_disponibilidade para obter a lista de livros disponíveis publicados em um ano específico
ano_especifico = 2020
livros_disponiveis_ano = Livro.verificar_disponibilidade(ano_especifico)
print(f"Livros disponíveis em {ano_especifico}:")
for livro in livros_disponiveis_ano:
print(livro)
Arquivo: main.py
from livro import Livro
# Instanciação de dois objetos da classe Livro
livro_main1 = Livro("Python para Iniciantes", "Carlos Coder", 2021)
livro_main2 = Livro("Web Development Essentials", "Laura Developer", 2023)
# Exibição da mensagem formatada utilizando o método __str__
print(livro_main1)
print(livro_main2)