在 Python 3 中,变量作用域是指变量的可见性和访问范围。了解变量作用域规则对于编写清晰、可维护的代码非常重要。本文将介绍 Python 3 中的变量作用域规则,并详细讨论 nonlocal
关键字的用法和作用。
变量作用域规则
在 Python 3 中,变量作用域按照以下顺序进行搜索:
- 局部作用域(Local scope):在函数内部定义的变量属于局部作用域,只能在函数内部访问。
- 闭包函数外的嵌套作用域(Enclosing scope):如果一个函数嵌套在另一个函数内部,内部函数可以访问外部函数的变量。这种情况下,外部函数的作用域被称为闭包函数外的嵌套作用域。
- 全局作用域(Global scope):在函数外部定义的变量属于全局作用域,可以在整个程序中访问。
- 内置作用域(Built-in scope):Python 内置的函数和变量属于内置作用域,可以在任何地方访问。
下面是一个示例代码,演示了 Python 3 中的不同作用域:
# 全局作用域
global_var = 10
def outer_function