문제
다음 Python 코드의 실행 결과를 쓰시오.
Pythondef process(data, storage={}): key = len(data) storage[key] = data * 2 return storage print(process('hi')) print(process('bye')) print(process('ok', {})) print(process('test'))
정답
{2: 'hihi'} {2: 'hihi', 3: 'byebye'} {2: 'okok'} {2: 'hihi', 3: 'byebye', 4: 'testtest'}
{2: 'hihi'}{2: 'hihi', 3: 'byebye'}{2: 'okok'}{2: 'hihi', 3: 'byebye', 4: 'testtest'}
해설
가변 기본 인자 storage={}는 함수 정의 시 한 번만 생성되어 호출 간 공유됩니다. 첫 번째 호출에서 키 2(문자열 길이)에 'hihi' 저장. 두 번째 호출에서 같은 딕셔너리에 키 3에 'byebye' 추가. 세 번째 호출은 새로운 빈 딕셔너리를 전달받아 독립적으로 동작. 네 번째 호출은 다시 공유 딕셔너리를 사용하여 키 4에 'testtest' 추가.