Python에서 콜백 함수
Python에서는 함수를 다른 함수의 매개변수로 전달할 수 있습니다. 이때 함수는 변수처럼(괄호 없이) 전달되며 콜백이라고 합니다. 이러한 콜백 함수는 주 함수의 본문 내에서 실행됩니다.
숫자와 함수를 매개변수로 받는 test 함수가 있다고 가정해 봅시다:
def test(num, func):
pass
이제 숫자를 제곱하는 func 함수를 만들어 보겠습니다:
def func(num):
return num ** 2
이제 test로 돌아가서, 전달된 콜백 함수도 숫자를 매개변수로 받도록 본문에 코드를 추가해 보겠습니다.
결과적으로 test의 결과는 다른 함수의 실행이 되며, 그 함수에 사용될 숫자는 test의 첫 번째 매개변수에서 가져옵니다:
def test(num, func):
print(func(num))
다음으로 test 함수를 호출하고 첫 번째 매개변수로 3, 두 번째 매개변수로 func를 전달합니다:
test(3, func) # 9를 출력합니다
다음 코드를 실행한 결과는 어떻게 될까요:
def get_Info(txt, func):
print(func(txt))
def func(name):
return 'user name is ' + name
get_Info('john', func)