multi-value-return pattern in Python
originally, you have:
def func(): return 1 print func() + func()
Then you decided that func() can return some extra information but you don’t want to break previous code (or modify them one by one). It looks like
def func(): return 1, "extra info" value, extra = func() print value # 1 (expected) print extra # extra info (expected) print func() + func() # (1, 'extra info', 1, 'extra info') (not expected, we want the previous behaviour, i.e. 2)
The previous codes (func() + func()) are broken. You have to fix it.
The solution is adapted from the answer,