Erhalten einer Python-Funktion, um abhängig von der Anzahl der Argumente einen Skalar oder eine Liste sauber zurückzugeben

Disclaimer: Ich suche nach einer Python 2.6-Lösung, falls es eine gibt.

Ich suche nach einer Funktion, die einen einzelnen Wert zurückgibt, wenn ein einzelner Wert übergeben wird, oder die eine Sequenz zurückgibt, wenn mehrere Werte übergeben werden:

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

Um klar zu sein, versucht man, einige Funktionsaufrufe einfach schöner aussehen zu lassen als:

a, = foo(1)

ode

a = foo(1)[0]

Rechts jetzt ist die unelegante Lösung etwas in diese Richtung:

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

Gibt es syntaktischen Zucker (oder Funktionen), durch die sich das Ganze sauberer anfühlt? Sowas wie das folgende?

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

Antworten auf die Frage(10)

Ihre Antwort auf die Frage