1
resposta

[Projeto] resoluçao

class Livro: 
    todos_livros = []
    def __init__(self,titulo,autor,ano_publicacao):
        self._titulo = titulo
        self._autor = autor
        self.ano_publicacao = ano_publicacao
        self.disponivel = True 
        Livro.todos_livros.append(self)
    def __str__(self): 
        return f'Titulo: {self._titulo}|Autor: {self._autor}|Ano de publicação: {self.ano_publicacao}'
    
   
    def empresta(self):
        return 'disponivel' if self.disponivel else 'indisponivel'
       
   #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):
        return [
            livro
            for livro in Livro.todos_livros
            if livro.ano_publicacao == ano and livro.disponivel
        ]


livro1 =Livro('A Menina que Roubava Livros','Markus Zusak', 2005 )
livro1.empresta()
print(f'Livro disponovel ? {livro1.disponivel}')

livro2 =Livro('It: A Coisa','Stephen King.',1986)
livro2.empresta()
print(f'Livro disponovel ? {livro2.disponivel}')

livro3 =Livro('Verith',' Colleen Hoover',2018)
print(f'Livro disponovel ? {livro3.disponivel}')



livros_disponiveis_ano = Livro.verificar_disponibilidade(2018)

for livro in livros_disponiveis_ano:
    print(livro)
    

print(livro1)
print(livro2)
print(livro3)





from livraria.livro import Livro

livro_biblioteca = Livro('A Menina que Roubava Livros','Markus Zusak', 2005 )
print(f"Antes de emprestar (biblioteca): Livro disponível? {livro_biblioteca.disponivel}")
livro_biblioteca.empresta()
print(f"Depois de emprestar (biblioteca): Livro disponível? {livro_biblioteca.disponivel}")
livro_biblioteca.empresta()

livros_disponiveis_ano = Livro.verificar_disponibilidade(2018)


ano_especifico = 2018
for livro in livros_disponiveis_ano:
    print(f"Livros disponíveis em {ano_especifico}: {livro}")
    
from livraria.livro import Livro


livro_main1 = Livro('Dom Casmurro','Machado de Assis', 1899)
livro_main2 = Livro('A Revolução dos Bichos','George Orwell', 1945)

print(livro_main1)
print(livro_main2)
1 resposta

Olá, Cauã! Tudo bem?

Parabéns pela resolução!

Gostei muito de ver que você utilizou List Comprehension no método verificar_disponibilidade. Essa é uma técnica muito "pythônica" que deixa o código limpo e elegante. A estrutura geral da sua classe Livro e o uso do método especial __str__ também estão ótimos.

Continue firme nos estudos de POO!

Bons estudos!

Sucesso

Imagem da comunidade