문제
다음 Python 코드의 실행 결과를 쓰시오.
Pythondef store(name, items={}): items[name] = len(name) return items print(store('cat')) print(store('dog')) print(store('bird', {})) print(store('fish'))
정답
{'cat': 3} {'cat': 3, 'dog': 3} {'bird': 4} {'cat': 3, 'dog': 3, 'fish': 4}
{'cat': 3}{'cat': 3, 'dog': 3}{'bird': 4}{'cat': 3, 'dog': 3, 'fish': 4}
해설
기본 인자로 사용된 딕셔너리 {}는 함수 정의 시 한 번만 생성되어 모든 호출에서 공유됩니다. 첫 번째 호출에서 {'cat': 3}이 생성되고, 두 번째 호출에서는 같은 딕셔너리에 'dog': 3이 추가되어 {'cat': 3, 'dog': 3}이 됩니다. 세 번째 호출은 새로운 딕셔너리 {}를 전달했으므로 독립적으로 {'bird': 4}가 됩니다. 네 번째 호출은 다시 공유 딕셔너리를 사용하여 'fish': 4가 추가됩니다.