Python repr()
is a built-in function that returns a string containing a printable representation of an object.
In Python, both str()
and repr()
return the printable representation of given object. We will learn about the difference between str()
and repr()
in a bit.
repr(object)
repr()
rakes only one parameter as an argument.
>>> repr(5)
'5'
>>> #repr() with list
>>> repr([1,2])
'[1,2]'
>>> #repr() with tuple
>>> repr((3,4))
'(3,4)'
>>> #repr() with dictionary
>>> repr({'x':1,'y':2})
"{'x': 1, 'y': 2}"
>>> #repr() with strings
>>> repr('Python')
"'Python'"
As you can see in above example, for many types, repr()
makes an attempt to return a string that would yield an object with the same value when passed to eval()
, otherwise the representation is a string enclosed in angle brackets that contains the name of the type of the object together with additional information often including the name and address of the object.
Behind the scenes, repr()
function utilizes __repr__()
method of the given object to return the printable representation.
A class can be used to control what repr()
returns for its instances by defining a __repr__()
method.
>>> class Example:
def __repr__(self):
return 'bar'
>>> repr(Example())
'bar'
Now that you know about repr()
function, you might be wondering what exactly is the difference between this Python repr()
function and str()
function as both returns the string containing the printable representation of an object.
Here are some of the things that are different about repr()
and str()
functions in Python.
repr()
uses the built-in method __repr__()
of the object to return the printable string representation while str()
uses __str__()
method of an objectstr()
function is to return a printable string that is easy for user to read, while repr()
function is mainly used for debugging and development and it has all the information about the object