变量的作用域
局部变量和全局变量。
变量的作用域是指变量的作用范围,即定义一个变量后,在哪些地方可以使用这个变量。
按照作用域的不同,Python 中的变量可分为局部变量和全局变量。
例:我们定义并测试一个函数,它读取两个变量的值。
1 | # 读取两个变量的值。变量a是函数的参数;变量b,这个函数没有定义它。 |
局部变量:在一个函数中定义的变量就是局部变量(包括形参),其作用域是从定义局部变量的位置至函数结束位置。
全局变量:在所有函数外定义的变量就是全局变量,其在所有函数中都可以使用。
1 | def f1(a): |
1 | b = 6 |
这不是缺陷,而是设计选择:Python 不要求声明变量,但是假定在函数定义体中赋值的变量是局部变量。
global
如果在函数中赋值时想让解释器把 b 当成全局变量,要使用 global 声明:
1 | b = 6 |
nonlocal
在Python 中,函数的定义可以嵌套,即在一个函数的函数体中可以包含另一个函数的定义
通过 nonlocal 关键字,可以使内层的函数直接使用外层函数中定义的变量。
1 | def outer_function(): |
总结:
- 局部变量与全局变量。
- Python 不要求声明变量,但是假定在函数定义体中赋值的变量是局部变量。
global
和nonlocal
关键字。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 ErgouTree's Blog!
评论
FPS: 60