Olá, pessoal! Fiquei com dúvida se, para usar o property, é necessário deixar o atributo privado, também ou apenas dentro do método. Por exemplo, na aula, o prof. nos passa algo, mais ou menos, assim:
class Pessoa:
def __init__(self, nome):
self.__nome = nome
@property
def nome(self):
return self.__nome
@nome.setter
def nome(self, nome):
self.__nome = nome
Mas, ao pesquisar alguns códigos na internet, vi que as pessoas não deixam o atributo em si privado, apenas nos métodos acessores, assim:
class Pessoa:
def __init__(self, nome):
self.nome = nome
@property
def nome(self):
return self.__nome
@nome.setter
def nome(self, nome):
self.__nome = nome
Há diferença dessa forma? Também vi utilizarem apenas um underscore, em vez de dois, dá na mesma?
Outras 2 dúvidas: pelo visto, diferentemente de outras linguagens em OO, recomenda-se mais utilizar property do que get e set em python, correto? E alguém poderia me explicar por que o código retorna erro quando utilizamos property sem declarar como privado, no método? Queria saber o que ocorre "por baixo dos panos", o que não foi explicado.
Obs: embora tenha ficado com essas dúvidas, as aulas do Nico são show, desde as que fiz da formação Java. Parabéns ao instrutor pela didática :)