Escolar Documentos
Profissional Documentos
Cultura Documentos
A ideia principal de Python é que tudo seja public e somente o necessário, seja
private. Muitas vezes quando estamos aprendendo POO costuma-se dizer:
"Grande parte das vezes sua classe terá atributos de instância privado e métodos
públicos". Mas nem sempre é assim, podemos realmente ter variáveis em nossas
classes que não precisam serem private.
Encapsulamento
Se você está certo que precisa ter variáveis private em sua classe e não quer que
ela seja acessível fora da classe onde ela foi especificada, então você terá que
informar primeiramente que ela será private, para que o interpretador Python
saiba disso.
Encapsulamento
O python usa _ (underscore) para explicitar se um atributo (método) é público ou
privado:
@property
def raca(self):
return self.__raca
@raca.setter
def raca(self, value):
self.__raca = value
Encapsulamento
Bom o que fizemos foi definir dois métodos, onde no primeiro definimos o getter
e o segundo definimos o setter. Observe que os dois métodos tem o mesmo
nome, mas possuem anotações diferentes. A primeira anotação @property indica
o método é um getter e a segunda anotação @raca.setter indica que o método é
um setter, perceba que a segunda anotação é bem diferente da primeira, nela
devemos informar o nome do atributo seguido de ponto e a palavra setter.