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

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

문제

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

Python
def record(score, history={}): history[len(history)] = score return history print(record(85)) print(record(92)) print(record(78, {})) print(record(95))

정답

{0: 85} {0: 85, 1: 92} {0: 78} {0: 85, 1: 92, 2: 95}

{0: 85}{0: 85, 1: 92}{0: 78}{0: 85, 1: 92, 2: 95}

해설

가변 기본 인자(딕셔너리)는 함수 정의 시 한 번만 생성되어 모든 호출에서 공유됩니다. 첫 번째 호출에서 history에 {0: 85}가 저장되고, 두 번째 호출에서는 같은 딕셔너리에 {1: 92}가 추가됩니다. 세 번째 호출은 새로운 빈 딕셔너리를 전달하므로 독립적으로 {0: 78}이 됩니다. 네 번째 호출은 다시 공유 딕셔너리를 사용하여 {2: 95}가 추가됩니다.

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

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