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

achei bem confusa essa aula!

nao entendi porque devemos usar o @property e @setter!! por favor se alguem poder me explicar com clareza eu agradeço

1 resposta
solução!

Olá Daiane, tudo bem com você?

O decorator @property corresponde a função property() do python, quando usamos ela como decorator estamos adicionando funcionalidades “especiais” a um método, fazendo ele agir como getters ou setters sem precisar mudar sua sintaxe;

Para usarmos o @property temos que seguir algumas regras.

  • Podemos trabalhar com o apenas o @property, ou seja apenas com um método que retorna algo (getter).
  • Para termos um método do tipo setter, temos que ter declarado antes um método do tipo @property.
  • Quando declaramos um método do tipo setter a sintaxe do decorator deve ser conforme abaixo:
    • @< nome_do_metodo>.setter

Exemplo de @property do tipo getter

    @property
    def limite(self):
        print('Usando decorators para ver limite')
        return self.__limite

Terminal

from conta import Conta

conta = Conta(132, 'Ana', 1000)

conta.limite

Resultado

Usando decorators para ver limite
1000.0

Já o decorator do tipo setter, como por exemplo `@limite.setter`, trabalha com chave e valor, para usá-lo devemos informar o local onde está o objeto (self) e informar qual o novo valor.

Exemplo de @property do tipo setter


   @limite.setter
    def limite(self, limite):
        print('Usando decorators para mudar o limite')
        self.__limite = limite

Terminal

conta.limite = 500
Usando decorators para mudar o limite

Em resumo temos:

  • @property: Utilizado para definir um método como do tipo getter, que retorna algo.
  • @< nome_do_metodo>.setter: Utilizado para definir um método como do tipo setter, que insere um novo valor.

Para saber um pouco mais sobre o uso dos @property, recomendo a leitura dos seguintes artigos, estão em inglês, caso tenha dificuldade com o idioma recomendo o uso do tradutor do navegador.

Caso tenha dúvidas, encontro à disposição.

Abraços e bons estudos.

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