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
Övningsinstruktioner
- Tilldela
echo_wordsträngenwordkonkatenerad med sig själv. - Använd nyckelordet
nonlocalför att ändra värdet påecho_wordi det omslutande scopet. - Ändra
echo_wordtillecho_wordkonkatenerat 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'
____