estou tentando alterar os dados via decorator do @property e nao está funcionando
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
estou tentando alterar os dados via decorator do @property e nao está funcionando
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!