1
resposta

Hora da prática: criando classes, construtores e métodos

class Livro:
# Lista de classe para armazenar todas as instâncias e facilitar a busca
livros = []

# 1. Construtor
def __init__(self, titulo, autor, ano_publicacao):
    self.titulo = titulo
    self.autor = autor
    self.ano_publicacao = ano_publicacao
    self.disponivel = True
    Livro.livros.append(self)

# 2. Método especial __str__
def __str__(self):
    status = 'Disponível' if self.disponivel else 'Emprestado'
    return f"Livro: {self.titulo} | Autor: {self.autor} | Ano: {self.ano_publicacao} | Status: {status}"

# 3. Método de instância emprestar
def emprestar(self):
    self.disponivel = False

# 4. Método estático para verificar disponibilidade por ano
@staticmethod
def verificar_disponibilidade(ano):
    # Filtra na lista de classe os livros do ano X que estão disponíveis
    livros_filtrados = [livro for livro in Livro.livros if livro.ano_publicacao == ano and livro.disponivel]
    return livros_filtrados
    # 5. Importando a classe

from livro import Livro

Criando instâncias para teste

livro_biblio1 = Livro('Dom Casmurro', 'Machado de Assis', 1899)
livro_biblio2 = Livro('O Alquimista', 'Paulo Coelho', 1988)
livro_biblio3 = Livro('1984', 'George Orwell', 1949)

6. Emprestando um livro e verificando status

print(f"Antes do empréstimo: {livro_biblio1}")
livro_biblio1.emprestar()
print(f"Após o empréstimo: {livro_biblio1}")

7. Utilizando o método estático

print("\n--- Verificando livros disponíveis de 1988 ---")
disponiveis_1988 = Livro.verificar_disponibilidade(1988)
for livro in disponiveis_1988:
print(livro)

# 8. Importando e instanciando no main

from livro import Livro

livro_main1 = Livro('Python Fluente', 'Luciano Ramalho', 2015)
livro_main2 = Livro('Código Limpo', 'Robert C. Martin', 2008)

print("\n--- Exibição via main.py ---")
print(livro_main1)
print(livro_main2)

1 resposta

Olá, Moacir, tudo bem?

Mais uma vez, parabéns pelo código!

Continue mandando ver nos estudos! Sua evolução na Orientação a Objetos está muito clara.

Bons estudos!

Sucesso

Imagem da comunidade