Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Minha resolução]

class Livro:
    
    def __init__(self, titulo, autor = '', ano_publicacao = 0):
        self.titulo = titulo
        self.autor = autor
        self.ano_publicacao = ano_publicacao
        self._disponivel = True
    
    def __str__(self):
        return f'{self.titulo} | {self.autor} | {self.ano_publicacao} | {self._disponivel}'
    
    def emprestar(self):
        self._disponivel = False
        
livro_um = Livro(1984, 'George Orwell', 1949)
print(livro_um)
print(f"\nEmpréstimo: Livro disponível? {livro_um._disponivel}")
livro_um.emprestar()
print(f"Depois do empréstimo: Livro disponível? {livro_um._disponivel}\n")
print(livro_um)
1 resposta
solução!

Oi, Emanuelly! Como vai?

Gostei bastante da forma como você estruturou a classe Livro, utilizando o método __init__ para definir os atributos e também implementando o __str__ para facilitar a visualização do objeto. O uso do atributo _disponivel e do método emprestar() mostra que você entendeu bem o conceito de encapsulamento e comportamento dentro da classe.

Uma dica interessante para o futuro é criar um método para devolver o livro, deixando sua classe ainda mais completa. Veja este exemplo:


class Livro:
    def devolver(self):
        self._disponivel = True

Esse método altera o atributo _disponivel para True, indicando que o livro voltou a ficar disponível. Assim, sua classe passa a representar melhor um sistema real de empréstimos.

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