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

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

문제

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

Python
def create_list(item, container=[]): container.append(item) return container print(create_list('A')) print(create_list('B')) print(create_list('C', ['X'])) print(create_list('D'))

정답

['A'] ['A', 'B'] ['X', 'C'] ['A', 'B', 'D']

['A']['A', 'B']['X', 'C']['A', 'B', 'D']

해설

가변 기본 인자 함정의 기초 개념을 다룬 문제입니다. 기본 인자로 사용된 빈 리스트 []는 함수 정의 시점에 한 번만 생성되어 모든 호출에서 공유됩니다. 첫 번째 호출에서 'A'가 추가되어 ['A'], 두 번째 호출에서 같은 리스트에 'B'가 추가되어 ['A', 'B']가 됩니다. 세 번째 호출은 새로운 리스트 ['X']를 전달하므로 기본 인자와 무관하게 ['X', 'C']가 됩니다. 네 번째 호출은 다시 공유된 기본 인자를 사용하여 ['A', 'B', 'D']가 됩니다.

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

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