문제
다음 Python 코드의 실행 결과를 쓰시오.
Pythondef create_modifier(base): state = {'value': base} def inner(): nonlocal state if state['value'] % 2 == 0: state = {'value': state['value'] * 3} else: state['value'] = state['value'] + 7 return state['value'] return inner func = create_modifier(4) print(func(), func(), func())
정답
12 36 108
12 36 10812, 36, 108
해설
초기 state['value']는 4이다.
- 첫 호출: 4는 짝수이므로 state = {'value': 12}가 되고 12 반환
- 두 번째 호출: 12는 짝수이므로 state = {'value': 36}이 되고 36 반환
- 세 번째 호출: 36은 짝수이므로 state = {'value': 108}이 되고 108 반환
따라서 출력 결과는
12 36 108이다.