정보처리기사 실기PythonPython - 가변 기본 인자 함정난이도 3SHORT_ANSWER

정보처리기사 실기 Python - 가변 기본 인자 함정 기출문제 #1464

문제

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

Python
def build_chain(value, chain={}): chain[len(chain)] = value return chain print(build_chain('first')) print(build_chain('second')) print(build_chain('third', {10: 'new'})) print(build_chain('fourth'))

정답

{0: 'first'} {0: 'first', 1: 'second'} {10: 'new', 1: 'third'} {0: 'first', 1: 'second', 2: 'fourth'}

{0: 'first'}{0: 'first', 1: 'second'}{10: 'new', 1: 'third'}{0: 'first', 1: 'second', 2: 'fourth'}

해설

가변 기본 인자인 딕셔너리 {}는 함수 정의 시 한 번만 생성되어 모든 호출에서 공유된다. 첫 번째 호출에서 {0: 'first'}가 되고, 두 번째 호출에서는 기존 딕셔너리에 {1: 'second'}가 추가된다. 세 번째 호출은 새로운 딕셔너리 {10: 'new'}를 전달받아 독립적으로 작동하며 {10: 'new', 1: 'third'}가 된다. 네 번째 호출은 다시 공유된 기본 딕셔너리를 사용하여 {0: 'first', 1: 'second', 2: 'fourth'}가 된다.

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

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