시작하기무료로 시작하기

중첩 함수 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'))
코드 편집 및 실행