免責事項: 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]