开始使用免费开始使用

关键字 nonlocal 与嵌套函数

让我们继续巩固关于作用域的掌握!在本练习中,您将于嵌套函数中使用关键字 nonlocal,以修改外层作用域中定义的变量的值。

本练习是课程的一部分

Python 函数入门

查看课程

练习说明

  • echo_word 赋值为字符串 word 自身拼接的结果。
  • 使用关键字 nonlocal 修改外层作用域中的 echo_word 值。
  • echo_word 改为 echo_word 与 '!!!' 的拼接结果。
  • 调用函数 echo_shout(),并传入单个参数 'hello'。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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'
____
编辑并运行代码