Saltar al contenido

__str__ frente a __repr__ – PythonForBeginners.com

Según la documentación oficial de Python, __repr__ es una función incorporada que se utiliza para calcular la reputación de cadena “oficial” de un objeto, mientras que __str__ es una función incorporada que calcula las representaciones de cadena “informales” de un objeto. Entonces, tanto __repr__ como __str__ se usan para representar objetos, pero de diferentes maneras. La mejor manera de comprender la diferencia entre estas dos funciones es verlas en acción:

>>>X=4

>>>repr(X)

‘4’

>>>str(X)

‘4’

>>>y=‘fibroso’

>>>repr(y)

“‘fibroso'”

>>>str(y)

‘fibroso’

Los retornos de repr () y str () son idénticos para int x, pero hay una diferencia entre los valores de retorno para str y – uno es formal y el otro es informal. Una de las diferencias más importantes entre las representaciones formales e informales es que la implementación predeterminada de __repr__ para un valor str se puede llamar como un argumento para eval, y el valor de retorno sería un objeto string válido, como este:

>>>repr(y)

“‘una cuerda'”

>>>y2=eval(repr(y))

>>>y==y2

Cierto

Si intenta llamar al valor de retorno de __str__ como argumento para eval, el resultado no será válido.

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.