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