НачатьНачать бесплатно

Ключевое слово 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'
____
Редактировать и запускать код