시작하기무료로 시작하기

키워드 nonlocal과 중첩 함수

스코프에 대한 이해를 한 단계 더 발전시켜 볼까요? 이번 연습 문제에서는 중첩 함수 안에서 키워드 nonlocal을 사용해, 바깥 스코프에서 정의된 변수의 값을 변경해 보겠습니다.

이 연습은 강의의 일부입니다

Python 함수 입문

강의 보기

연습 안내

  • echo_word에 문자열 word를 자기 자신과 이어 붙인 값을 할당하세요.
  • 바깥 스코프의 echo_word 값을 변경하기 위해 키워드 nonlocal을 사용하세요.
  • echo_wordecho_word에 '!!!'를 이어 붙인 값으로 바꾸세요.
  • 함수 echo_shout()을(를) 호출하고, 인수로 'hello' 하나를 전달하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Define echo_shout()
def echo_shout(word):
    """Change the value of a nonlocal variable"""
    
    # Concatenate word with itself: echo_word
    ____
    
    # Print echo_word
    print(echo_word)
    
    # Define inner function shout()
    def shout():
        """Alter a variable in the enclosing scope"""    
        # Use echo_word in nonlocal scope
        ____
        
        # Change echo_word to echo_word concatenated with '!!!'
        echo_word = ____
    
    # Call function shout()
    shout()
    
    # Print echo_word
    print(echo_word)

# Call function echo_shout() with argument 'hello'
____
코드 편집 및 실행