Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Lugar certo da mascara?

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?

4 respostas

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

  • Internamente é preferivel manter o dado em um formato normalizado, assim o programador não precisa se preocupar em ficar toda hora normalizando para trabalhar com ele.
  • Para apresentação do dado ao exterior, que é quando o importante é a legibilidade humana, apresente o dado formatado.

A parte da normalização eu tinha entendido, a questão é " o lugar certo da gente chamar uma mascara..."?

solução!

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!