문제
다음 Python 코드의 실행 결과를 쓰시오.
Pythondef add_item(item, items=[]): items.append(item) return items result1 = add_item('apple') result2 = add_item('banana') print(result1) print(result2)
정답
['apple', 'banana'] ['apple', 'banana']
['apple', 'banana']['apple','banana']["apple", "banana"]["apple","banana"]
해설
가변 기본 인자 함정이다. 기본값 items=[]는 함수 정의 시 한 번만 생성되어 모든 호출에서 공유된다. 첫 번째 호출에서 ['apple']이 되고, 두 번째 호출에서 같은 리스트에 'banana'가 추가되어 ['apple', 'banana']가 된다. result1과 result2는 같은 리스트 객체를 참조한다.