Отказ от ответственности: я ищу решение 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]