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

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

문제

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

Python
def 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으로 증가

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

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