nonlocal
- 使用
nonlocal
关键字可以改变外部函数的变量,特别是在嵌套函数中。这是nonlocal
的主要作用之一。 nonlocal
是一个在 Python 中用于指示变量的作用域的关键字。它通常用在嵌套函数中,以允许你在内部函数中修改外部函数的局部变量,而不会创建一个新的同名局部变量。- 在 Python 中,通常有三种作用域:
- 局部作用域(Local scope):定义在函数内部的变量只能在该函数内部访问。
- 嵌套作用域(Enclosing scope):嵌套函数可以访问包含它们的外部函数的变量。
- 全局作用域(Global scope):在模块级别定义的变量可以在模块中的任何地方访问。
- 有时,当在嵌套函数中尝试修改一个外部函数的局部变量时,Python 会默认将这个变量解释为一个新的局部变量,而不是修改外部函数的变量。这就是使用
nonlocal
的情况。