They are two examples of sequence data types in python.
Today I will tell about tuples.
A tuple consists of a number of values separated by commas.
The biggest problem is when we do not know the number of these values or type.
Let me illustrate with a function that returns a tuple.
This is a known tuple but we will use like an unknown tuple.
Let's see the python code and some errors:
>>> import sys
>>> if hasattr(sys, 'version_info'):
... print sys.version_info()
...
Traceback (most recent call last):
File "", line 2, in
TypeError: 'tuple' object is not callable
Is very correct to got this error.
And the result using the print function:
>>> if hasattr(sys, 'version_info'):
... print "%s" % str(sys.version_info)
...
(2, 6, 4, 'final', 0)
>>> if hasattr(sys, 'version_info'):
... sys.stderr.write("%s" % str(sys.version_info))
...
(2, 6, 4, 'final', 0)>>>
or if you can use the repr function.
>>> if hasattr(sys, 'version_info'):
... sys.stderr.write("%s" % repr(sys.version_info))
...
(2, 6, 4, 'final', 0)>>>
The official Python documentation says __repr__ is used to compute the “official” string representation of an object and __str__ is used to compute the “informal” string representation of an object.
In my opinion , the correct way it's to use repr. For example:
>>> import datetime
>>> today = datetime.datetime.now()
>>> str(today)
'2012-10-02 22:45:57.634977'
>>> repr(today)
'datetime.datetime(2012, 10, 2, 22, 45, 57, 634977)'
As we see all values from tuples it's show.