python的名称空间和作用域
1、
2、
内置名称空间:
Python解释器启动则产生,关闭即销毁
全局名称空间:
存放的名字:运行顶级代码产生的名字,或者说不是函数的定义,也不是内置的,剩下的都是。
存活的周期:Python文件执行则产生,Python文件运行完毕后销毁
局部名称空间:
存放的名字:再调用函数时,运行函数体代码过程中产生的函数内的名字。
存活的周期:再调用函数中存活,调用函数结束后销毁。
名称空间的加载顺序
内置全局空间-全局名称空间-局部名称空间
名称空间的销毁顺序
局部名称空间-全局名称空间-内置全局空间
3、
如果当前再全局空间,查找顺序:全局名称空间-内置名称空间
如果当前再局部名称空间,局部名称空间-全局名称空间-内置全局空间去查找
全局作用域:内置名称空间,全局名称空间
1、全局存活
2、被所有的函数共享
局部作用域:局部名称空间的名字
1、临时存活
2、局部有效,函数内有效
4、名称空间的嵌套关系:是以定义阶段为准,与调用位置无关
4.1
4.2
5、global 修改全局变量
当x为不可变类型时
当x为可变类型时
6、修改函数外层函数包含的函数对应的值
当x为不可变类型时
当x为可变类型时