Kom igångKom igång gratis

Nyckelordet nonlocal och nästlade funktioner

Nu fortsätter vi att öva på scope! I den här övningen använder du nyckelordet nonlocal inuti en nästlad funktion för att ändra värdet på en variabel som är definierad i det omslutande scopet.

Den här övningen är en del av kursen

Introduktion till funktioner i Python

Visa kurs

Övningsinstruktioner

  • Tilldela echo_word strängen word konkatenerad med sig själv.
  • Använd nyckelordet nonlocal för att ändra värdet på echo_word i det omslutande scopet.
  • Ändra echo_word till echo_word konkatenerat med '!!!'.
  • Anropa funktionen echo_shout() och skicka med argumentet 'hello'.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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'
____
Redigera och kör kod