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