The keyword nonlocal and nested functions
Let's once again work further on your mastery of scope! In this exercise, you will use the keyword nonlocal
within a nested function to alter the value of a variable defined in the enclosing scope.
This exercise is part of the course
Introduction to Functions in Python
Exercise instructions
- Assign to
echo_word
the stringword
, concatenated with itself. - Use the keyword
nonlocal
to alter the value ofecho_word
in the enclosing scope. - Alter
echo_word
toecho_word
concatenated with '!!!'. - Call the function
echo_shout()
, passing it a single argument 'hello'.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# 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'
____