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

[Dúvida] @property Para que serve exatamente?

To tentando entender para que serve o @property mas até o momento não consegui, procurei no gemini e ele me disse que deixa a função inteligente, mas como assim?

1 resposta
solução!

Oi Rodrigo! Como vai?

O @property em Python é um decorador que transforma um método de uma classe em um atributo "inteligente". Isso significa que você pode acessar o método como se fosse um atributo, mas ainda ter a lógica de um método por trás. Isso é especialmente útil quando você quer controlar o acesso a um atributo ou executar alguma lógica ao acessá-lo.

Por exemplo, imagine que você tem uma classe Livro e quer ter um atributo chamado titulo_formatado, que sempre retorna o título do livro em letras maiúsculas. Você poderia fazer isso com o @property assim:

class Livro:
    def __init__(self, titulo, autor, ano_publicacao):
        self.titulo = titulo
        self.autor = autor
        self.ano_publicacao = ano_publicacao

    @property
    def titulo_formatado(self):
        return self.titulo.upper()

Com isso, você pode acessar titulo_formatado como se fosse um atributo, mas ele sempre retornará o título em maiúsculas:

livro = Livro("O Senhor dos Anéis", "J.R.R. Tolkien", 1954)
print(livro.titulo_formatado)  # Saída: O SENHOR DOS ANÉIS

A vantagem é que você pode encapsular a lógica de formatação ou validação dentro do método, mas ainda manter uma interface limpa e fácil de usar para quem está utilizando a classe.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.