Obtener una función de Python para devolver limpiamente un escalar o una lista, dependiendo del número de argumentos

Descargo de responsabilidad: estoy buscando una solución Python 2.6, si hay una.

Estoy buscando una función que devuelva un solo valor cuando se pasa un solo valor, o que devuelve una secuencia cuando se pasan varios valores:

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

Para ser claros, esto es en un esfuerzo por hacer que algunas llamadas a funciones simplemente se vean mejor que:

a, = foo(1)

o

a = foo(1)[0]

En este momento, la solución poco elegante es algo así:

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

¿Hay algún azúcar sintáctico (o funciones) que lo haga sentir más limpio? algo como lo siguiente?

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

Respuestas a la pregunta(5)

Su respuesta a la pregunta