Domine o @property em Python: escreva classes mais seguras e elegantes
Quando começamos a trabalhar com Programação Orientada a Objetos (POO) em Python, é comum acessar e modificar atributos diretamente: class Produto: def __init__(self, nome, preco): self.nome = nome self.preco = preco produto = Produto("Notebook", 4500) print(produto.preco) produto.preco = -100 O problema é que nada impede que um preço inválido seja atribuído ao objeto. É aí que entra o @property , um dos recursos mais elegantes da linguagem para encapsular atributos sem complicar a forma como eles são utilizados. O que é @property ? O decorator @property transforma um método em um atributo somente leitura (ou controlado), permitindo que você execute validações e lógica de negócio sempre que um valor for acessado ou alterado. Na prática, você continua usando: produto.preco em vez de: produto.get_preco() Isso torna a API da classe muito mais limpa e intuitiva. Impedindo acesso a variáveis - Um Exemplo Interessante import hashlib import os class User: ...