命名空间一共分为三种:
全部命名空间
局部命名空间
内置命名空间
命名空间:
当程序运行时,代码从上至下一次读取,遇到变量与值,# 他会在内存中开辟一个空间,存放变量与值的内存地址的对应关系,这样存储变量与值得对应关系的空间叫做名称空间(命名空间)。
局部名称空间:
当解释器遇到函数时,他会将函数名存储在内存中,但是对于函数体莫不关心。# 当函数执行时,他会通过函数名找到函数体,然后将函数体里面的变量等对应关系存放在一个#临时开辟的空间中,随着函数的结束,临时的空间关闭,这样的空间叫做临时名称空间(局部名称空间)
作用域:
作用域就是作用范围,按照生效范围可以分为全局作用域和局部作用域。
全局作用域:
包含内置名称空间、全局名称空间,在整个文件的任意位置都能被引用、全局有效
局部作用域:
局部名称空间,只能在局部范围内生效
加载顺序:
1,内置命名空间(程序运行前加载)->
2,全局命名空间(程序运行中:从上到下加载)->
3,局部命名空间(函数运行时:调用时才加载)
取值顺序:从内到外,单向找
在局部调用:局部命名空间->全局命名空间->内置命名空间
在全局调用:全局命名空间->内置命名空间