Получение функции Python для чистого возврата скаляра или списка, в зависимости от количества аргументов

Отказ от ответственности: я ищу решение Python 2.6, если оно есть.

Я ищу функцию, которая возвращает одно значение при передаче одного значения или возвращает последовательность при передаче нескольких значений:

>>> a = foo(1)
2
>>> b, c = foo(2, 5)
>>> b
3
>>> c
6

Чтобы было ясно, это делается для того, чтобы некоторые вызовы функций выглядели лучше, чем:

a, = foo(1)

или же

a = foo(1)[0]

Прямо сейчас, не элегантное решение - что-то вроде этого:

def foo(*args):
    results = [a + 1 for a in args]
    return results if len(results) > 1 else results[0]

Есть ли какой-нибудь синтаксический сахар (или функции), который бы чувствовал себя чище? что-нибудь вроде следующего?

def foo(*args):
    return *[a + 1 for a in args]

Ответы на вопрос(5)

Ваш ответ на вопрос