Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Boas praticas Propriedades e Atributos

Qual a diferença de alterar um atributo através de um método ou através de uma propriedade setter?

Quando usar uma propriedade setter e quando usar a chamada de um método para alterar um atributo?

3 respostas

Nicholas, na prática não há muita diferença, mas o uso das properties é considerado mais pythônico.

solução!

Nicholas,

  • Qual a diferença de alterar um atributo através de um método ou através de uma propriedade setter?

Na prática, nenhuma.

  • Quando usar uma propriedade setter e quando usar a chamada de um método para alterar um atributo?

Quando vemos uma classe em Python escrita com métodos getters e setters, logo percebemos que o programador ainda não "pegou o jeito" de OOP em Python. Getters e setters são muito comuns em outras linguagens de programação porque os atributos normalmente são declarados com escopo privado. Ou seja, quem usa a classe não tem acesso aos atributos do objeto. Por isso criaram os métodos get...() e set...() para "violar" o encapsulamento dos membros privados.

Encapsulamento é uma coisa muito boa. Devemos usá-lo sempre que for útil. Aliás, talvez as classes sejam uma das melhores formas de colocarmos o encapsulamento em prática.

Python, claro, encoraja encapsulamento, mas de outra forma. Para começar, todos os membros de uma classe -- métodos e atributos -- têm visibilidade pública. Isso mesmo. Nada em um objeto fica escondido.

Muito boa resposta, Welton!

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