Python Language Common Pitfalls Multiple return


Function xyz returns two values a and b:

def xyz():
  return a, b

Code calling xyz stores result into one variable assuming xyz returns only one value:

t = xyz()

Value of t is actually a tuple (a, b) so any action on t assuming it is not a tuple may fail deep in the code with a an unexpected error about tuples.

TypeError: type tuple doesn't define ... method

The fix would be to do:

a, b = xyz()

Beginners will have trouble finding the reason of this message by only reading the tuple error message !