4.0 Python 变量与作用域
在python中,变量的作用域决定了变量在哪些位置可以被访问。一个程序中的变量并不是所有的地方都可以访问的,其访问权限决定于变量的赋值位置。python中有两种最基本的变量作用域:局部作用域和全局作用域。局部变量是在函数内部定义的变量,只能在其被声明的函数内部访问。而全局变量则是在函数外定义的变量,可以在整个程序的范围内被访问。局部变量只有在其被声明的函数内部才能被访问,全局变量则可以在程序的任何地方被访问。变量的作用域对于程序的正确性和可读性非常重要,需要在编写程序时注意变量的赋值位置以及其作用域。
变量的作用域可分为以下几种状态:
- L(Local):局部作用域
- E(Enclosing):闭包函数外的函数中
- G(Global):全局作用域
- B(Built-in):内建作用域
变量的属性与变量的执行依据:
- 变量的先后顺序是:L –> E –> G –>B 的规则查找
- 在子程序中定义的变量称为局部变量
- 在程序的一开始定义的变量称为全局变量
- 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序
- 当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用,在其它地方全局变量起作用
- 当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了
- 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问
全局变量: 如下定义并使用一个全局变量,来看一下效果吧.
import os |
局部变量: 如下定义并使用一个局部变量,来看一下效果吧.
import sys |
局部转全局: 将一个局部变量通过global
关键字,转换为全局变量.
import os |
外层非全局: 如果要修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要nonlocal
关键字声明一下.
import sys |