Existe alguma diferença prática entre usar print ou _ _ str _ _ ? Não entendi bem pq usar o str...
Existe alguma diferença prática entre usar print ou _ _ str _ _ ? Não entendi bem pq usar o str...
Oi Anderson,
Existe diferença sim. O print() é uma função que permite imprimir no console um objeto, seja esse objeto um número, string ou um objeto que vc mesmo criou. O _str_ é um método mágico do python (sim, é sério o nome), vc coloca em uma classe para definir a representação em tela dela.
Olhe esse exemplo:
Aqui eu defini uma classe tst apenas com um atributo 'a' que tem uma string, mas quando eu instanciei 'ob' e tentei dar um print, meu retorno foi o endereço da memória onde esse objeto está armazenado.
Agora na segunda definição de classe, eu adicionei um método _str_ e nele eu defini que a representação em tela do meu objeto é a variável interna 'a'. Então agora toda vez que eu fizer um print nesse objeto, ele vai mostrar o valor da variável 'a' no terminal ao invés do endereço que tinha antes (que é o modo padrão que o python printa objetos).
Nesse exemplo eu coloquei pra printar a variável, mas vc não precisa fazer isso, poderia colocar outros valores, poderia colocar uma frase pronta, depende apenas de quem definir a classe.