Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Ken aan echo_word de string word toe, aan zichzelf geplakt.
  • Gebruik het sleutelwoord nonlocal om de waarde van echo_word in de omringende scope te wijzigen.
  • Pas echo_word aan naar echo_word samengevoegd 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'
____
Code bewerken en uitvoeren