5.python基础——名称空间
名称空间解决了编码过程不同的模块中命名重复的过程。
名称空间
名称空间是对栈区的划分,因为名称空间的存在,可以在栈区存放相同的名字
名称空间的种类
内置名称空间
存放python解释器内置的名字
存活周期:python解释器运行期间
全局名称空间
存放非函数内、非内置的名字
存活周期:文件执行期间
局部名称空间
存放函数内定义的名字
存活周期:调用函数时存活,调用结束则销毁
名称空间的加载顺序:
内置名称>全局名称空间>局部名称空间
销毁顺序:
局部名称空间>全局名称空间>内置名称空间
名字查找优先级:
当前所在名称空间向上
局部名称空间>全局名称空间>内置名称空间
作用域
全局作用域:内置名称空间、全局名称空间
作用范围:
全局存活
全局有效,被所有函数共享
局部作用域:局部名称空间的名字
作用范围:
临时存活
局部有效:函数内有效
gloab与nonlocal
如果局部想要修改全局的值(不可变类型),需要使用global
x = 222 def func(): global x x = 111
nonlocal
函数嵌套时,修改最外边函数的值
License:
CC BY 4.0