Python

Qual a diferença entre __str__ e __repr__?

11 de agosto de 2020

Qual a diferença entre __str__ e __repr__?

Neste artigo você verá a diferença entre __str__ e __repr__ em Python – descubra em qual situação utilizar cada um dos operadores!

diferença entre __str__ e __repr__ capa

Fala programador(a), beleza? Bora aprender mais sobre as instruções __str__ e __repr__ de Python!

Basicamente o __str__ serve para exibir ao usuário final um objeto

Já o __repr__ serve para exibir um objeto para os desenvolvedores do código

Veja um exemplo:

import datetime

today = datetime.datetime.now()

print(str(today)) # 2020-07-08 13:16:04.162076

print(repr(today)) # datetime.datetime(2020, 7, 8, 13, 16, 4, 162076)

Como você pode observar as saídas são diferentes, cada uma importa de uma forma específica para quem as lê

A primeira, com str, é legível aos clientes, já a de repr não

Porém a maioria das classes não tem diferenciação no resultado final, então tome cuidado

Veja um exemplo:

class Pessoa:

  def __init__(self, nome, idade):
    self.nome = nome
    self.idade = idade

joao = Pessoa("João", 30)

print(str(joao)) # <__main__.Pessoa object at 0x7f7c8903d4c0>

print(repr(joao)) # <__main__.Pessoa object at 0x7f7c8903d4c0>

Neste caso não teria efeito mostrar o str para o cliente final

Podemos considerar que a função __str__ vai fornecer a forma mais legível possível de um objeto

Já o __repr__ é comumente utilizado por desenvolvedores para fazer o debug da aplicação, onde podem receber mais informações sobre um objeto no prompt

Conclusão

Neste artigo vimos a diferença entre __str__ e __repr__

A função str serve para exibir os resultados de uma classe para os clientes finais

Já com o repr nós podemos obter outros dados de uma classe, que não são úteis aos usuários do sistema

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

 

0
Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x