본문 바로가기
파이썬

파이썬 Python에서 인수 목록을 사용하여 함수 호출

by º기록 2020. 9. 24.
반응형

파이썬의 다른 함수 내에서 함수를 호출하려고하는데 올바른 구문을 찾을 수 없습니다. 내가 원하는 것은 다음과 같습니다.

def wrapper(func, args):
    func(args)

def func1(x):
    print(x)

def func2(x, y, z):
    return x+y+z

wrapper(func1, [x])
wrapper(func2, [x, y, z])

이 경우 첫 번째 통화는 작동하고 두 번째는 작동하지 않습니다. 내가 수정하고 싶은 것은 호출 된 함수가 아니라 래퍼 함수입니다.

 

해결 방법

 

다른 답변을 조금 확장하려면 :

라인에서 :

def wrapper(func, *args):

args 옆의 *는 "주어진 나머지 매개 변수를 가져 와서 args 라는 목록에 넣습니다"를 의미합니다.

라인에서 :

    func(*args)

여기서 args 옆의 *는 "args라는이 목록을 가져와 나머지 매개 변수에 '언 래핑'함을 의미합니다.

따라서 다음을 수행 할 수 있습니다.

def wrapper1(func, *args): # with star
    func(*args)

def wrapper2(func, args): # without star
    func(*args)

def func2(x, y, z):
    print x+y+z

wrapper1(func2, 1, 2, 3)
wrapper2(func2, [1, 2, 3])

wrapper2 에서는 목록이 명시 적으로 전달되지만 두 래퍼 모두 args 에는 [1,2,3] 목록이 포함됩니다.

 

참조 페이지 https://stackoverflow.com/questions/817087

 

 

반응형

댓글