문제
다음 Python 코드의 실행 결과를 쓰시오.
Pythondef build_counter(start={}): start['count'] = start.get('count', 0) + 1 return start print(build_counter()) print(build_counter()) print(build_counter({'count': 10})) print(build_counter())
정답
{'count': 1} {'count': 2} {'count': 11} {'count': 3}
{'count': 1}{'count': 2}{'count': 11}{'count': 3}
해설
가변 기본 인자(딕셔너리)는 함수 정의 시 한 번만 생성되어 모든 호출에서 공유됩니다.
- 첫 번째 호출: 빈 딕셔너리에 count=1 추가
- 두 번째 호출: 같은 딕셔너리에서 count를 1에서 2로 증가
- 세 번째 호출: 새로운 딕셔너리 {'count': 10}을 전달하여 11로 증가
- 네 번째 호출: 다시 공유되는 기본 딕셔너리 사용하여 count를 2에서 3으로 증가