Não consigo entender como o property é definido e como ele realmente impacta .
Não consigo entender como o property é definido e como ele realmente impacta .
Oiii Abílio, tudo bem ?
O @property é utilizado quando queremos retornar algum dado da nossa classe para o usuário. Ele é similar ao getter, por exemplo:
def get_nome(self):
return self.__nome
Entretanto, para pegar valores fora da classe da forma como apresentado acima teremos uma grande diferença em relação as properties.
Utilizando os getters teríamos que acessar fora da classe da seguinte forma:
vingadores.get_nome()
Vejamos o mesmo exemplo utilizando as properties:
@property
def nome(self):
return self.__nome
Observe que as properties tem uma função com o mesmo nome do atributo, acrescido de um decorator em cima desta função.
Com as properties, iremos conseguir acessar fora da classe com uma sintaxe enxuta, acessando pelo nome da propriedade, podendo fazer uma chamada direta, por exemplo:
vingadores.nome
As properties existem para nos ajudar a simplificar a chamada e melhorar a legibilidade do código. Onde os atributos continuam "privados", mas conseguimos acessá-los de forma direta, da mesma forma como acessamos quando os mesmos são públicos. Vale dizer também que quando criamos getters e setters todos os lugares que já acessam a classe precisam mudar, ao contrário das properties. Pegou a ideia?
No dia a dia de um desenvolvedor python você verá muito a utilização do @property.
Deixo aqui um capítulo sobre propriedades, do curso que antecede a este.
Qualquer dúvida estou a disposição. Espero ter ajudado. Bons estudos!!!