str() vs repr() em Python
str() e repr() são usados para obter uma representação de string do objeto.
- Exemplo de str():
filter_none
editar
fecharplay_arrow
link
brilho_4
códigos
=
'Hello, Geeks.'
print
(
str
(s))
print
(
str
(
2.0
/
11.0
))
chevron_rightfilter_noneResultado:
Olá, Geeks. 0,181818181818
- Exemplo de repr():
filter_none
editar
fecharplay_arrow
link
brilho_4
códigos
=
'Hello, Geeks.'
print
(
repr
(s))
print
(
repr
(
2.0
/
11.0
))
chevron_rightfilter_noneResultado:
'Olá, Geeks.' 0,18181818181818182
.
A partir da saída acima, podemos ver se imprimimos string usando a função repr(), em seguida, ela imprime com um par de aspas e, se calcularmos um valor, obtemos um valor mais preciso do que a função str().
A seguir estão as diferenças:
- str() é usado para criar saída para o usuário final, enquanto repr() é usado principalmente para depuração e desenvolvimento. o objetivo de repr é não ter ambigüidade e str's deve ser legível . Por exemplo, se suspeitarmos que um float tem um pequeno erro de arredondamento, repr irá nos mostrar, enquanto str pode não.
- repr() calcula a representação de string "oficial" de um objeto (uma representação que tem todas as informações sobre o objeto) e str() é usado para calcular a representação de string "informal" de um objeto (uma representação que é útil para imprimir o objeto).
- A instrução print e a função interna str() usam __str__ para exibir a representação de string do objeto, enquanto a função interna repr() usa __repr__ para exibir o objeto.
Vamos entender isso por um exemplo: -
import
datetime
today
=
datetime.datetime.now()
(
str
(today))
(
repr
(today))
Resultado:
22/02/2016 19: 32: 04.078030 datetime.datetime (2016, 2, 22, 19, 32, 4, 78030)
str() exibe a data de hoje de uma forma que o usuário possa entender a data e a hora.
repr() imprime a representação “oficial” de um objeto de data e hora (significa que usando a representação de string “oficial” podemos reconstruir o objeto).
Como fazê-los funcionar para nossas próprias classes definidas?
Uma classe definida pelo usuário também deve ter um __repr__ se precisarmos de informações detalhadas para depuração. E se acharmos que seria útil ter uma versão string para os usuários, criamos uma função __str__.
class
Complex
:
def
__init__(
self
, real, imag):
self
.real
=
real
self
.imag
=
imag
def
__repr__(
self
):
return
'Rational(%s, %s)'
%
(
self
.real,
self
.imag)
def
__str__(
self
):
return
'%s + i%s'
%
(
self
.real,
self
.imag)
t
=
Complex
(
10
,
20
)
(
str
(t))
(
repr
(t))
Resultado:
10 + i20 Racional (10, 20)
Este artigo é uma contribuição de Arpit Agarwal. Se você gosta de GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo e enviá-lo para contrib@geeksforgeeks.org. Veja o seu artigo que aparece na página principal do GeeksforGeeks e ajude outros Geeks.
Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva