Oi, Mitsuyoshi! Tudo bem?
No exercício 4, precisamos adicionar um método estático chamado verificar_disponibilidade
à classe Livro
. No entanto, temos no código enviado um método de classe (usando @classmethod
) em vez de um método estático (usando @staticmethod
).
A diferença principal entre um método de classe e um método estático é que o método de classe recebe a classe como primeiro argumento (normalmente chamado de cls
), enquanto o método estático não recebe automaticamente nenhum argumento relacionado à classe ou instância.
Aqui está uma sugestão de como podemos implementar o método estático conforme o enunciado:
@staticmethod
def verificar_disponibilidade(ano_procurado):
livros_disponiveis = [
livro._titulo for livro in Livro.livros
if livro._disponivel and livro._ano_publicacao == ano_procurado
]
return livros_disponiveis
Ou até mesmo da seguinte forma:
@staticmethod
def verificar_disponibilidade(ano):
livros_disponiveis = [livro for livro in Livro.livros if livro.ano_publicacao == ano and livro.disponivel]
return livros_disponiveis
Livro.livros = [livro1, livro2, livro3]
Espero ter ajudado!
Um forte abraço e bons estudos!