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!

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
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 114 aulas
- 4 projetos
- 9h 18min
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
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Como limitar números decimais em Python?
Adicionar uma seção sobre f-strings, o jeito mais usado hoje pra formatar casa decimal. Exemplo: valor = 3.14159 e print(f"{valor:.2f}") mostrando 3.14. Explicar que o […]
Como programar Python [dicas e códigos iniciantes aqui]
Python é uma linguagem de programação muito popular e uma de alto nível utilizada em diferentes tipos de aplicações, como para o desenvolvimento web, em Machine […]
Como inverter uma string em Python
Neste artigo você vai aprender a como inverter uma string em Python, de uma maneira simples para você utilizar em seus programas Conteúdo também disponível […]
