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!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!
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!