Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida

Qual a necessidade de colocar a palavra livro antes do for? Não poderia ser apenas for livro in Livro.livros?

# 4) Adicione um método estático chamado verificar_disponibilidade à classe Livro que recebe um ano como parâmetro e retorna uma lista dos livros disponíveis publicados nesse ano.
    @staticmethod
    def verificar_disponibilidade(ano):
        livros_disponiveis = [livro for livro in Livro.livros if livro.ano_publicacao == ano and livro.disponivel]
        return livros_disponiveis
1 resposta
solução!

Oi, Mitsuyoshi! Tudo bem?

Quando escrevemos uma list comprehension como [livro for livro in Livro.livros if livro.ano_publicacao == ano and livro.disponivel], a primeira ocorrência de "livro" é a variável que será usada para armazenar cada item da iteração. Basicamente, estamos criando uma nova lista que contém os itens que atendem à condição especificada.

A estrutura geral de uma list comprehension é: [expressão for item in iterável if condição]. A "expressão" é o que queremos adicionar à nova lista, "item" é a variável que representa cada elemento do iterável, e "condição" é opcional, mas filtra os itens que serão incluídos na nova lista.

Portanto, "livro" antes do "for" é necessário para indicar que estamos coletando cada objeto "livro" que atende à condição especificada na list comprehension, sem isso o Python não saberia o que adicionar à nova lista.

Espero ter ajudado! Caso tenha ficado alguma dúvida em relação ao curso ou atividade, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!