Het sleutelwoord nonlocal en geneste functies
Laten we je grip op scope verder versterken! In deze oefening gebruik je het sleutelwoord nonlocal binnen een geneste functie om de waarde te wijzigen van een variabele die is gedefinieerd in de omringende scope.
Deze oefening maakt deel uit van de cursus
Introductie tot functies in Python
Oefeninstructies
- Ken aan
echo_wordde stringwordtoe, aan zichzelf geplakt. - Gebruik het sleutelwoord
nonlocalom de waarde vanecho_wordin de omringende scope te wijzigen. - Pas
echo_wordaan naarecho_wordsamengevoegd met '!!!'. - Roep de functie
echo_shout()aan en geef één argument mee: 'hello'.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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'
____