Respostas do 1 ao 4:
#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.
class Livro:
biblioteca = []
def __init__(self, titulo, autor, ano_publicacao):
self._titulo = titulo
self._autor = autor
self._ano_publicacao = ano_publicacao
self._disponivel = True
self.biblioteca.append(self)
#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.
def __str__(self):
return f'{self._titulo} | {self._autor} | {self._ano_publicacao}'
#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.
def emprestar(self):
self._disponivel = False
@property
def disponivel(self):
return 'Disponivel' if self._disponivel else 'Indisponivel'
#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_disponivilidade(ano):
print(f'Livros disponiveis do ano {ano}:')
for livro in Livro.biblioteca:
if livro._ano_publicacao == ano and livro._disponivel:
print(f'{livro}')
#2
livro1 = Livro('Robert C. Martin','Clean Code: A Handbook of Agile Software Craftsmanship', 2008)
livro2 = Livro('George Orwell', '1984', 1949)
print(livro1)
print(livro2)
#3
livro3 = Livro('Eric Matthes', 'Python Crash Course', 2015)
livro3.emprestar()
print(livro3.disponivel)
#4
livro4_1 = Livro('Eric Matthes', 'Python Crash Course1', 2015)
livro4_2 = Livro('Eric Matthes', 'Python Crash Course2', 2015)
livro4_3 = Livro('Eric Matthes', 'Python Crash Course3', 2015)
Livro.verificar_disponivilidade(2015)
O terminal me retornou
Eu criei um arquivo livro_copy.py para limpar e deixar apenas a classe e os metodos:
class Livro:
biblioteca = []
def __init__(self, titulo, autor, ano_publicacao):
self._titulo = titulo
self._autor = autor
self._ano_publicacao = ano_publicacao
self._disponivel = True
self.biblioteca.append(self)
def __str__(self):
return f'{self._titulo} | {self._autor} | {self._ano_publicacao}'
def emprestar(self):
self._disponivel = False
@property
def disponivel(self):
return 'Disponivel' if self._disponivel else 'Indisponivel'
def verificar_disponibilidade(ano):
print(f'Livros disponiveis do ano {ano}:')
for livro in Livro.biblioteca:
if livro._ano_publicacao == ano and livro._disponivel:
print(f'{livro}')
Entao eu respondi as perguntas 5 à 7 no arquivo biblioteca importando a classe Livro do arquivo livro_copy:
#5 - Crie um arquivo chamado biblioteca.py e importe a classe Livro neste arquivo.
from modelos.livro_copy import Livro
#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.
livro_1 = Livro('Aprendendo Python', 'Igor', 2025)
livro_1.emprestar()
print(livro_1.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.
livro_2005_1 = Livro('Aprendendo Python 1', 'Igor', 2005)
livro_2010_2 = Livro('Aprendendo Python 2', 'Joao', 2010)
livro_2010_3 = Livro('Aprendendo Python 3', 'Lucas', 2010)
livro_2005_4 = Livro('Aprendendo Python 4', 'Miguel', 2010)
Livro.verificar_disponibilidade(2010)
Livro.verificar_disponibilidade(2005)
O terminal me retornou