Función incorporada Python repr()

De la documentación de Python 3

Devuelve una cadena que contiene una representación imprimible de un objeto. Para muchos tipos, esta función intenta devolver una cadena que produciría un objeto con el mismo valor cuando se pasa a eval(); de lo contrario, la representación es una cadena encerrada entre corchetes angulares que contiene el nombre del tipo del objeto junto con información adicional que a menudo incluye el nombre y la dirección del objeto. Una clase puede controlar lo que devuelve esta función para sus instancias definiendo un método __repr__().

Introducción

La función repr() devuelve una cadena que contiene una representación imprimible de un objeto. El objetivo de repr() es no ser ambiguo. Para muchos tipos, repr() devuelve una cadena que puede ser ejecutada por eval() para crear un objeto idéntico.

Esto es diferente de str(), que tiene la intención de ser legible por humanos.

Ejemplo

import datetime

# Para una cadena, repr() añade comillas
print(repr("hello"))

# Para un objeto datetime, no es ambiguo
now = datetime.datetime.now()
print(repr(now))

# Puedes definir __repr__ para tus propias clases
class Person:
    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return f"Person(name='{self.name}')"

p = Person("John")
print(repr(p))
'hello'
datetime.datetime(2023, 10, 27, 10, 0, 0, 123456)
Person(name='John')

Enlaces relevantes