정보처리기사 실기PythonPython - 클로저난이도 2SHORT_ANSWER

정보처리기사 실기 Python - 클로저 기출문제 #2646

문제

다음 Python 코드의 실행 결과를 쓰시오.

Python
def build_multiplier(factor): value = [factor] def multiply(num): value[0] *= num return value[0] return multiply func = build_multiplier(3) print(func(2), func(4), func(5))

정답

6 24 120

6 24 1206, 24, 120

해설

build_multiplier 함수는 클로저를 반환한다. 내부 함수 multiply는 외부 함수의 value 리스트를 캡처하여 상태를 유지한다. 초기값 3에서 시작하여: 첫 번째 호출 func(2)에서 32=6, 두 번째 호출 func(4)에서 64=24, 세 번째 호출 func(5)에서 24*5=120이 된다. 클로저의 특성으로 value[0]의 상태가 호출 간에 유지되어 누적 곱셈이 수행된다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.