Olá!
Não entendi muito bem a necessidade desse `@nome.setter, uma vez que lá em cima o
self._nome` já recebe o nome.title()*. Alguém poderia me explicar? Obrigado!
Olá!
Não entendi muito bem a necessidade desse `@nome.setter, uma vez que lá em cima o
self._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 atributo
nome. Ele é utilizado para definir uma função que será chamada toda vez que tentarmos definir um valor para o atributo
nome`.
No código da aula o `@nome.setteré utilizado para garantir que o valor atribuído ao
nome` 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!