Función repr() de Python
Funciones integradas de Python3
repr()Es una función integrada de Python que se utiliza para obtener la representación imprimible de un objeto.
repr()Devuelve la representación oficial en forma de cadena de un objeto, que normalmente se puede utilizar para recrear el objeto. Se diferencia destr()str() en querepr()repr() se centra más en la depuración y el desarrollo, mientras questr()str() se centra en la facilidad de uso.
Definición de la palabra: reprSírepresentationAbreviatura de (representación).
Sintaxis básica y parámetros
Formato de sintaxis
repr(object)
Descripción de parámetros
- Parámetro object:
- Tipo: cualquier objeto
- Descripción: el objeto del que se desea obtener su representación en cadena.
Descripción de la función
- Valor de retorno: Devuelve una cadena, normalmente una cadena que puede representar el objeto.
- Método especial: el objeto puede, al definir el
__repr__método __repr__, personalizar el valor de retorno.
Ejemplos
Ejemplo 1: repr() vs str()
Ejemplo
# Diferencia entre cadenas
s = "hello"
print(f"str: '{str(s)}'") # Salida: str: 'hello'
print(f"repr: '{repr(s)}'") # Salida: repr: 'hello'
# Diferencia entre fecha y hora
from datetime import datetime
dt = datetime.now()
print(f"str: {str(dt)}")
print(f"repr: {repr(dt)}")
# Diferencia de clases personalizadas
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
def __repr__(self):
return f"Person(name='{self.name}')"
p = Person("Tom")
print(f"str: {str(p)}")
print(f"repr: {repr(p)}")
s = "hello"
print(f"str: '{str(s)}'") # Salida: str: 'hello'
print(f"repr: '{repr(s)}'") # Salida: repr: 'hello'
# Diferencia entre fecha y hora
from datetime import datetime
dt = datetime.now()
print(f"str: {str(dt)}")
print(f"repr: {repr(dt)}")
# Diferencia de clases personalizadas
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
def __repr__(self):
return f"Person(name='{self.name}')"
p = Person("Tom")
print(f"str: {str(p)}")
print(f"repr: {repr(p)}")
Resultado esperado:
str: 'hello' repr: 'hello' str: 2024-01-15 10:30:45.123456 repr: datetime.datetime(2024, 1, 15, 10, 30, 45, 123456) str: Person: Tom repr: Person(name='Tom')
Análisis del código:
- Para cadenas simples, ambos resultados son iguales.
- Para fecha y hora,
repr()devuelve una expresión que puede reconstruir el objeto. - Las clases personalizadas pueden definir respectivamente
__str__y__repr__los métodos __repr__ y __str__.
Ejemplo 2: Usar repr() para depurar
Ejemplo
# Mostrar caracteres ocultos
s = "hello\nworld"
print(f"str: {str(s)}")
print(f"repr: {repr(s)}")
# Mostrar comillas
text = "She said 'hello'"
print(f"str: {str(text)}")
print(f"repr: {repr(text)}")
# En el entorno interactivo
# Escribir directamente el nombre de la variable invoca repr()
s = "hello\nworld"
print(f"str: {str(s)}")
print(f"repr: {repr(s)}")
# Mostrar comillas
text = "She said 'hello'"
print(f"str: {str(text)}")
print(f"repr: {repr(text)}")
# En el entorno interactivo
# Escribir directamente el nombre de la variable invoca repr()
Resultado esperado:
str: hello world repr: 'hello\nworld' str: She said 'hello' repr: "She said 'hello'"
repr()Puede mostrar caracteres ocultos (como saltos de línea) y comillas, lo que facilita la depuración.
Funciones integradas de Python3
Otras extensiones