키워드 nonlocal과 중첩 함수
스코프에 대한 이해를 한 단계 더 발전시켜 볼까요? 이번 연습 문제에서는 중첩 함수 안에서 키워드 nonlocal을 사용해, 바깥 스코프에서 정의된 변수의 값을 변경해 보겠습니다.
이 연습은 강의의 일부입니다
Python 함수 입문
연습 안내
echo_word에 문자열word를 자기 자신과 이어 붙인 값을 할당하세요.- 바깥 스코프의
echo_word값을 변경하기 위해 키워드nonlocal을 사용하세요. echo_word를echo_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'
____