문제
다음 Python 코드의 실행 결과를 쓰시오.
Pythondef func(x, y=[]): y.append(x) return y print(func(1)) print(func(2)) print(func(3, [])) print(func(4))
정답
[1] [1, 2] [3] [1, 2, 4]
[1][1, 2][3][1, 2, 4]
해설
Python에서 가변 기본 인자는 함수 정의 시 단 한 번만 생성된다. func(1) → 기본 리스트에 1 추가 → [1]. func(2) → 같은 리스트에 2 추가 → [1, 2]. func(3, []) → 새 리스트 전달 → [3] (기본 리스트에 영향 없음). func(4) → 다시 기본 리스트에 4 추가 → [1, 2, 4]. 이는 Python의 대표적인 함정(mutable default argument)이다.