Ключове слово 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'
____