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