作用域(scope)- 指的是变量生效的区域。
就像数学里面的定义域差不多,加深一下理解。
在Python中一共有两种作用域:
- 全局作用域
- 在程序执行时创建,在程序执行结束时销毁
- 所有函数以外的区域都是全局作用域
- 在全局作用域中定义的变量,都属于全局变量,全局变量可以在程序的任意位置被访问
- 函数作用域
- 函数作用域在函数调用时创建,在调用结束时销毁
- 函数每调用一次就会产生一个新的函数作用域
- 在函数作用域中定义的变量,都是局部变量,它只能在函数内部被访问
因为函数中可以嵌套函数,所以这里可以理解成“范围越小的权限越大”,也就是函数作用域中可以访问全局变量。
变量的查找:
- 当我们使用变量时,会优先在当前作用域中寻找该变量,如果有则使用;如果没有则继续向上一级寻找,直至找到。没有的话就抛出异常。
如果希望在函数内部修改全局变量,则需要使用 global 关键字,来声明变量。



