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

 

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