문제
다음 Python 코드의 실행 결과를 쓰시오.
Pythondef 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}가 추가됩니다.