1
resposta

[Projeto] Aplicação dos exercícios

Abaixo, os exercícios divido nos 3 arquivos .py

teste4.py

#1. Crie uma classe chamada Livro com um construtor que aceita os parâmetros titulo, autor e ano_publicacao. Inicie um atributo chamado disponivel como True por padrão.
#2. Na classe Livro, adicione um método especial str que retorna uma mensagem formatada com o título, autor e ano de publicação do livro. Crie duas instâncias da classe Livro e imprima essas instâncias.
#3. Adicione um método de instância chamado emprestar à classe Livro que define o atributo disponivel como False. Crie uma instância da classe, chame o método emprestar e imprima se o livro está disponível ou não.
#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.
class Livro:
    def __init__(self, titulo, autor, ano_publicacao):
        self._titulo = titulo
        self._autor = autor
        self._ano_publicacao = int(ano_publicacao)
        self._disponivel = True

    def __str__(self):
        return f'Título: {self._titulo.ljust(40)} | Autor: {self._autor.ljust(40)} | Ano de Publicação: {self._ano_publicacao}'
    
    def emprestar(self):
        self._disponivel = False

    @property
    def verificar_disponibilidade(self):
        livros_em_estoque = [l for l in Livro.livros if l.ano_publicacao == l.disponivel]
        return livros_em_estoque
    
livro1 = Livro('Guia do Mochileiro das Galáxias', 'Douglas Adams', 1979)
livro2 = Livro('Fundação', 'Isac Asimov', 1951)
livro3 = Livro('Senhor dos Anéis', 'J.R.R Tolkien', 1952)
print(f'Antes de emprestar: {livro3._disponivel}')
livro3.emprestar()
print(f'Depois de emprestar: {livro3._disponivel}')

print(livro1)
print(livro2)

biblioteca.py

#5. Crie um arquivo chamado biblioteca.py e importe a classe Livro neste arquivo.
#6. No arquivo biblioteca.py, empreste o livro chamando o método emprestar e imprima se o livro está disponível ou não após o empréstimo.
from testes.teste4 import Livro

livro_biblioteca = Livro('Guia do Mochileiro das Galáxias', 'Douglas Adams', 1979)
print(f'Não emprestado?: {livro_biblioteca._disponivel}')
livro_biblioteca.emprestar()
print(f'Não emprestado?: {livro_biblioteca._disponivel}')

#7. No arquivo biblioteca.py, utilize o método estático verificar_disponibilidade para obter a lista de livros disponíveis publicados em um ano específico.
ano_especifico = 2020
livros_disponiveis_ano = Livro.verificar_disponibilidade(ano_especifico)
print(f'Livros Disponíveis em {ano_especifico}: {livros_disponiveis_ano}')

main.py

#8. Crie um arquivo chamado main.py, importe a classe Livro e, no arquivo main.py, instancie dois objetos da classe Livro e exiba a mensagem formatada utilizando o método str.
from testes.teste4 import Livro

livro_main1 = Livro('Guia do Mochileiro das Galáxias', 'Douglas Adams', 1979)
livro_main2 = Livro('Fundação', 'Isac Asimov', 1951)

print(livro_main1)
print(livro_main2)
1 resposta

Olá Gabriel!

Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. O código parece estar bem estruturado e funcional. Parabéns. Continue assim, se dedicando e evoluindo.

Bons estudos!