Ключевое слово nonlocal и вложенные функции
Продолжим оттачивать понимание области видимости! В этом упражнении вы воспользуетесь ключевым словом nonlocal внутри вложенной функции, чтобы изменить значение переменной, объявленной во внешней области видимости.
Это упражнение является частью курса
Введение в функции Python
Инструкции к упражнению
- Присвойте переменной
echo_wordстрокуword, конкатенированную с самой собой. - Используйте ключевое слово
nonlocal, чтобы изменить значениеecho_wordво внешней области видимости. - Измените
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'
____