1
resposta

[Dúvida] @nome.setter

Olá!

Não entendi muito bem a necessidade desse `@nome.setter, uma vez que lá em cima oself._nome` já recebe o nome.title()*. Alguém poderia me explicar? Obrigado!

1 resposta

Olá Rafael, tudo bem com você?

O `@nome.setteré um decorador que permite definir um método setter para o atributonome. Ele é utilizado para definir uma função que será chamada toda vez que tentarmos definir um valor para o atributonome`.

No código da aula o `@nome.setteré utilizado para garantir que o valor atribuído aonome` seja sempre formatado com a primeira letra maiúscula, independentemente de como o valor foi definido.

O self._nome que que está presente no método construtor da classe (__init__) é a definição do atributo nome na classe, essa atribuição irá acontecer quando o objeto for criado, já quando o objeto já foi criado e é necessário uma reatribuição, para que ele seja formatado corretamente, entra o `@nome.setter`.

Por exemplo, se você tiver um objeto com o atributo nome definido como "rafael", ao tentar definir um novo valor para esse atributo, como "maria", o método setter será chamado e o valor será formatado para "Maria".

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

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