1
resposta

Pessola, como faço o decorator funcionar?

estou tentando alterar os dados via decorator do @property e nao está funcionando

1 resposta

Olá Wallace. Tudo bem?

O decorator @property é geralmente usado para definir métodos que atuam como atributos de uma classe, permitindo que você acesse métodos como se fossem atributos, sem a necessidade de parênteses.

No entanto, é importante lembrar que o @property por si só não é usado para alterar dados. Ele é usado para acessar dados de maneira controlada. Se você deseja alterar dados, você pode usar o @property em conjunto com @<nome_do_atributo>.setter.

Aqui está um exemplo de como você pode usar @property e @<nome_do_atributo>.setter:

class MeuModelo:
    def __init__(self, valor):
        self._valor = valor

    @property
    def valor(self):
        return self._valor

    @valor.setter
    def valor(self, novo_valor):
        if novo_valor >= 0:  # Exemplo de validação
            self._valor = novo_valor
        else:
            raise ValueError("O valor deve ser positivo")

# Uso
obj = MeuModelo(10)
print(obj.valor)  # Acessa o valor através do @property
obj.valor = 20    # Altera o valor através do setter

No exemplo acima, valor é uma propriedade que pode ser acessada e alterada de maneira controlada. O método @valor.setter permite que você defina a lógica para modificar o valor do atributo _valor.

Se a sua intenção é modificar dados em um modelo do Django, certifique-se de que está utilizando o setter corretamente para alterar os atributos do modelo.

Espero ter ajudado e bons estudos!

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