In the case of a single element tuple, the trailing comma is required.
a = ('foo',)
What about a tuple with multiple elements? It seems that whether the trailing comma exists or not, they are both valid. Is this correct? Having a trailing comma is easier for editing in my opinion. Is that a bad coding style?
a = ('foo1', 'foo2')
b = ('foo1', 'foo2',)
It is only required for single-item tuples to disambiguate defining a tuple or an expression surrounded by parentheses.
(1) # the number 1 (the parentheses are wrapping the expression `1`)
(1,) # a 1-tuple holding a number 1
For more than one item, it is no longer necessary since it is perfectly clear it is a tuple. However, the trailing comma is allowed to make defining them using multiple lines easier. You could add to the end or rearrange items without breaking the syntax because you left out a comma on accident.
e.g.,
someBigTuple = (
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
#...
10000000000,
)
Note that this applies to other collections (e.g., lists and dictionaries) too and not just tuples.