def baz1(foo, *args):
args旁的*表示“将给定的其余参数放入一个称为args的列表中”。
在该行中:
foo(*args)
args旁边的*表示“将这个称为args的列表,并将其“解包”到其余参数中。
在foo2中,列表是显式传递的,但是在两个包装器中,args都包含列表[1,2,3]。
def baz1(foo, *args): # with star foo(*args) def baz2(foo, args): # without star foo(*args) def foo2(x, y, z): print x+y+z baz1(foo2, 2, 3, 4) baz2(foo2, [2, 3, 4])
输出值
9 9