중첩 함수 II
아주 잘하셨어요. 방금 함수 안에 또 다른 함수를 중첩했어요. 함수를 중첩하는 또 하나의 멋진 이유는 클로저(closure) 개념 때문이에요. 이는 중첩(내부) 함수가 호출될 때 자신을 둘러싼 바깥 스코프의 상태를 기억한다는 뜻이에요. 따라서 바깥 스코프에서 지역적으로 정의된 것들은, 바깥 함수의 실행이 끝난 뒤에도 내부 함수에서 사용할 수 있어요.
그럼 계속해 볼까요? 이 연습 문제에서는 내부 함수 inner_echo()의 정의를 완성한 뒤, 서로 다른 인수를 사용해 echo()를 여러 번 호출해 보세요. 실행해 보고 어떤 출력이 나오는지 확인해 보세요!
이 연습은 강의의 일부입니다
Python 함수 입문
연습 안내
- 내부 함수의 헤더를 함수 이름
inner_echo()와 단일 매개변수word1로 완성하세요. - 함수
echo()가inner_echo를 반환하도록 완성하세요. - 우리는
echo()에 인수 2를 전달해 호출한 뒤, 결과 함수를twice에 할당해 두었어요. 이제echo()에 인수 3을 전달해 호출하고, 결과 함수를thrice에 할당하세요. - Submit을 눌러
twice()와thrice()를 호출하고 결과를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define echo
def echo(n):
"""Return the inner_echo function."""
# Define inner_echo
def ____(____):
"""Concatenate n copies of word1."""
echo_word = word1 * n
return echo_word
# Return inner_echo
# Call echo: twice
twice = echo(2)
# Call echo: thrice
# Call twice() and thrice() then print
print(twice('hello'), thrice('hello'))