str() y repr() se usan para obtener una representación de string del objeto.
- Example of str():
s
=
'Hello, Geeks.'
print
(
str
(s))
print
(
str
(
2.0
/
11.0
))
Producción:
Hello, Geeks. 0.181818181818
- Example of repr():
s
=
'Hello, Geeks.'
print
(
repr
(s))
print
(
repr
(
2.0
/
11.0
))
Producción:
'Hello, Geeks.' 0.18181818181818182
.
De la salida anterior, podemos ver si imprimimos una string usando la función repr(), luego se imprime con un par de comillas y si calculamos un valor, obtenemos un valor más preciso que la función str().
Las siguientes son diferencias:
- str() se usa para crear resultados para el usuario final, mientras que repr() se usa principalmente para la depuración y el desarrollo. El objetivo de repr es ser inequívoco y el de str es ser legible . Por ejemplo, si sospechamos que un float tiene un pequeño error de redondeo, repr nos mostrará mientras que str no.
- repr() calcula la representación de string «oficial» de un objeto (una representación que tiene toda la información sobre el objeto) y str() se usa para calcular la representación de string «informal» de un objeto (una representación que es útil para imprimir el objeto).
- La declaración de impresión y la función integrada str() usan __str__ para mostrar la representación de string del objeto, mientras que la función integrada repr() usa __repr__ para mostrar el objeto.
Entendamos esto con un ejemplo: –
import datetime today = datetime.datetime.now() # Prints readable format for date-time object print (str(today)) # prints the official format of date-time object print (repr(today))
Producción:
2016-02-22 19:32:04.078030 datetime.datetime(2016, 2, 22, 19, 32, 4, 78030)
str() muestra la fecha de hoy de manera que el usuario pueda entender la fecha y la hora.
repr() imprime la representación «oficial» de un objeto de fecha y hora (significa que usando la representación de string «oficial» podemos reconstruir el objeto).
¿Cómo hacer que funcionen para nuestras propias clases definidas?
Una clase definida por el usuario también debe tener un __repr__ si necesitamos información detallada para la depuración. Y si pensamos que sería útil tener una versión de string para los usuarios, creamos una función __str__.
# Python program to demonstrate writing of __repr__ and # __str__ for user defined classes # A user defined class to represent Complex numbers class Complex: # Constructor def __init__(self, real, imag): self.real = real self.imag = imag # For call to repr(). Prints object's information def __repr__(self): return 'Rational(%s, %s)' % (self.real, self.imag) # For call to str(). Prints readable form def __str__(self): return '%s + i%s' % (self.real, self.imag) # Driver program to test above t = Complex(10, 20) # Same as "print t" print (str(t)) print (repr(t))
Producción:
10 + i20 Rational(10, 20)
Este artículo es una contribución de Arpit Agarwal. Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA