Porque o professor diz que : " o lugar certo da gente chamar uma mascara é dentro da representação string da classe" aos 12min e 15 seg de video?
Porque o professor diz que : " o lugar certo da gente chamar uma mascara é dentro da representação string da classe" aos 12min e 15 seg de video?
A representação string da classe é o que vai aparecer quando se chama o print, ou seja, para algum humano ler. Um texto formato é bom para leitura humana.
Por outro lado, como programadores, precisamos realizar operações, manipulações e comparações nesses numeros. Não é muito pratico, por exemplo, compar telefones cheios de caracteres especias que não são significativos para o dado analisado.
Se preciso comparar (21) 9 8823-2384
com outro numero que recebi de fora, pequenas diferenças podem dar falsos negativos. Implicitamente preciso sempre normalizar esse dado para realizar operações nele.
>>> "(21) 9 8823-2384" == "(21)988232384"
False
>>> "(21) 9 8823-2384" == "21 98823-2384"
False
# Preciso normalizar
>>> "21988232384" == "21988232384"
True
Resumindo
A parte da normalização eu tinha entendido, a questão é " o lugar certo da gente chamar uma mascara..."?
Bem, a representação string da classe (a função def __str__(self):
) é o "lugar certo" porque no print(obj)
é um lugar que queremos ver algo formatado/mascarado.
Mas não quer dizer que é o único lugar certo, porque depende das suas necessidades: se vc precisar salvar um log que humanos vao ler, ou mandar pro fronend de um site.
Acho que o ponto dessa fala é usar só quando/onde faz sentido (no exercício esse é o unico lugar), mas por padrão usar representação normalizada.
Agora entendi. Obrigado!