1
resposta

Qual a visibilidade dos decoradores @property ou @setter?

Fiquei com uma dúvida com relação ao uso dos decoradores. Ao utilizar @property ou @<método>.setter, a sintaxe fica muito próxima a estar alterando diretamente o atribulo da Classe, ao invés de estar fazendo isso a partir da invocação de um método. Então, por que usá-los ao invés de fazer isso através de métodos sem decoradores? Há problema se optar por fazer esses tipos de operações sem decoradores ou o indicado é usá-los sempre que desejamos ter um get e set para determinado atributo?

1 resposta

Olá Philipysr, 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;

Será um modo Pythonico de programar, quando queremos que um determinado método possua uma nova funcionalidade daremos preferência pelo uso do decorator. Seu uso permite também acessar os atributos privados como se o atributo fosse público, isso acontece devido ao decorator.

Daremos preferência para o uso do decorator sempre que precisarmos de métodos do tipo getter ou setters para trabalharmos com atributos privados. Assim estaremos criando códigos de forma mais Pythonica.

Para aprimorar ainda mais o seu aprendizado sobre o uso dos @property, recomendo a leitura do seguinte artigo.

Os artigos acima estão em inglês, caso tenha dificuldade com o idioma recomendo o uso do tradutor do navegador.

Lembre-se que pode contar sempre com o fórum Alura, seja para tirar suas dúvidas ou para compartilhar o seu desenvolvimento.

Encontro à disposição.

Abraços e bons estudos.

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software