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

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

문제

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

Python
def collect(item, container={}): container[item] = True return container print(collect('a')) print(collect('b')) print(collect('c', {})) print(collect('d'))

정답

{'a': True} {'a': True, 'b': True} {'c': True} {'a': True, 'b': True, 'd': True}

{'a': True}{'a': True, 'b': True}{'c': True}{'a': True, 'b': True, 'd': True}

해설

가변 기본 인자인 딕셔너리 {}는 함수 정의 시 한 번만 생성되어 모든 호출에서 공유됩니다. collect('a') 호출 시 {'a': True}가 되고, collect('b') 호출 시 동일한 딕셔너리에 'b' 키가 추가되어 {'a': True, 'b': True}가 됩니다. collect('c', {}) 호출 시에는 새로운 빈 딕셔너리를 전달하므로 {'c': True}가 됩니다. collect('d') 호출 시에는 다시 공유되는 기본 딕셔너리를 사용하여 {'a': True, 'b': True, 'd': True}가 됩니다.

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

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