Após um pouco de bateção de cabeça com o uso do verificar disponiblidade, consegui finalizar o código. Pesquisei sobre o decorator @staticmethod, já que não tinha sido ensinado na aula, mas acho interesse o uso de material que não foi usado na aula para instigar a pesquisa.
Segue abaixo meus códigos:
exercicios.py:
class Livro:
Livros = []
def __init__(self, titulo, autor, ano_publicado):
self._titulo = titulo.title()
self._autor = autor.title()
self._ano_publicado = ano_publicado
self._disponivel = True
Livro.Livros.append(self)
def emprestar(self):
if self._disponivel:
self._disponivel = False
def __str__(self):
return f'{self._titulo} | {self._autor} | {self._ano_publicado} | {'Disponível' if self._disponivel else 'Indisponível'}'
@staticmethod
def verificar_disponibilidade(ano):
return [str(livro) for livro in Livro.Livros if livro._ano_publicado == ano]
biblioteca.py:
from exercicios import Livro
livro_dracula = Livro('Dracula', 'Bram Stoker', 1897)
livro_cthulhu = Livro('Chamado de Cthulhu', 'H.P. Lovecraft', 1928)
livro_retrato_Dorian = Livro('O Retrato de Dorian Gray', 'Oscar Wilde', 1890)
print(Livro.verificar_disponibilidade(1897)) ##O uso duplicado desse print é para teste se o emprestar funciona corretamente
livro_dracula.emprestar()
print(Livro.verificar_disponibilidade(1897))
main.py:
from exercicios import Livro
livro_mochileiro = Livro('O guia do Mochileiro das Galáxias', 'Douglas Adams', 1979)
livro_calculava = Livro('O homem que calculava', 'Malba Tahan', 1938)
livro_calculava.emprestar() ## Utilizei somente pra testar
print(livro_calculava)
print(livro_mochileiro)
No fim o bibilioteca.py só existe por conceito de exercícios, já que podemos juntar o código dele com do main, facilitando o acesso a todos os livros