Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução da atividade 7 - Hora da prática: criando classes, construtores e métodos

class Livro():
    
    livros_disponiveis = []

    def __init__(self,titulo,autor,ano_publicacao):
        self.titulo = titulo
        self.autor = autor
        self.ano_publicacao = ano_publicacao
        self.disponivel = True

        Livro.livros_disponiveis.append(self)

    def __str__(self):
        return f'o livro {self.titulo} que pertence ao autor {self.autor}, publicado em {self.ano_publicacao}, {self.disponivel}'
    
    def emprestar(self):
        if self.disponivel:
            self.disponivel = False
            return self.disponivel
        
    @property
    def disponivel(self):
        if self._disponivel:
            return 'esta disponivel'
        else:
            return 'não esta disponivel'
        
    @disponivel.setter
    def disponivel(self,valor):
        if isinstance(valor,bool):
            self._disponivel = valor
            return self._disponivel
        else:
            raise TypeError('O atributo disponivel só pode ser True ou False')

    @classmethod
    def verificar_disponibilidade(clm, ano):
        for livro in clm.livros_disponiveis:
            if livro.disponivel == 'esta disponivel' and livro.ano_publicacao == ano:
                print(f'livro {livro.titulo}, {livro.ano_publicacao}')
livro1 = Livro('harry potter','JK',1990)
livro1.emprestar()
livro2 = Livro('Turma da mônica','Mauricio de Souza',1990)
Livro.verificar_disponibilidade(1990)
1 resposta

Olá, Barcelo. Como vai?

Obrigado por compartilhar sua resolução da atividade. Sua implementação segue a proposta do exercício e demonstra um bom uso de conceitos de orientação a objetos, como construtor, método especial __str__, @property, @classmethod e encapsulamento do atributo disponivel. Também foi uma boa ideia manter uma lista com os livros criados para realizar a verificação de disponibilidade.

Parabéns pela dedicação e por compartilhar sua solução. Continue praticando e conte com o fórum sempre que precisar.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!