免责声明:我正在寻找 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]