#Arquivo: OO_livro_1_de_3.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.
class Livro:
lista_de_livros = []
def __init__(self, titulo: str, autor: str, ano_publicacao: int, disponivel = True):
self._titulo = titulo.title()
self._autor = autor.title()
self._ano_publicacao = ano_publicacao
self._disponivel = disponivel
Livro.lista_de_livros.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:<22} | {self._autor:<22} | {self._ano_publicacao:<18} | {self._disponivel}'
@classmethod
def listar_livros(cls):
print(f'{"Livro":<22} | {"Autor":<22} | {"Ano de publicação":<18} | Disponível')
count=1
for livro in cls.lista_de_livros:
print(f'{livro}')
count += 1
print()
#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
#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):
ano = ano
for livro in Livro.lista_de_livros:
if livro._ano_publicacao == ano:
print(f'{livro}')
print()
#5, 6 e 7 no arquivo:
#OO_biblioteca.py
#8 no arquivo:
#OO_main.py
#Arquivo: OO_biblioteca_2_de_3.py
#5.Crie um arquivo chamado biblioteca.py e importe a classe Livro neste arquivo.
#OO-biblioteca.py
from OO_livro_1_de_3 import Livro
livro1 = Livro('Os Luziadas', 'Camões', 1572)
livro2 = Livro('Você não sabe estudar', 'José Mario Chaves', 2024)
livro3 = Livro('O Senhor dos Anéis', 'J. R. R. Tolkien', 1954)
#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.
livro1.emprestar()
Livro.listar_livros()
#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.verificar_disponibilidade(2024)
#Arquivo: OO_main_3_de_3.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 OO_livro_1_de_3 import Livro
livro4 = Livro('Harry Potter', 'J. K. Rowling', 1997)
livro5 = Livro('O Hobbit', 'J. R. R. Tolkien', 1937)
Livro.listar_livros()