(十五)名称空间与作用域
名称空间和作用域
- 名称空间(namespace) 是存放名字与值绑定关系的地方
 - 分类:
 
- 内置名称空间
存放python解释器内置名字,比如内置函数名:len, max,sum. 
创建:随着python解释器的启动而创建
销毁:随着python解释器的关闭而销毁
- 全局名称空间
存放文件级别的名称,比如 
x=1
def f1():
    x=1
if x==1:
创建: 文件开始执行时
销毁:文件执行完毕时
- 局部名称空间
存放函数内的名字,需要强调的是函数的参数也属于局部的 
创建:函数执行时才临时创建
销毁:函数执行完毕则立即销毁。
def f1()
    x=1
f1()
- 名称空间的加载顺序
 
内置名称空间--》全局名称空间--》局部名称空间
- 名称空间的查找名字顺序
 
局部名称空间--》全局名称空间--》内置名称空间
按照顺序依次注释掉len,看实验效果。
len=10                      5.
def f1():
    len=100                 3.
    def f2():
        len=1000            2.
        def f3():
            len=10000       1.
            print(len)
        f3()
    f2()
len=1111111111              4
f1()
- 名字的查找关系在函数定义阶段
 
global只能改全局的
nolocal 会从当前层的外一层开始查找,一直找到最外层的函数
                    
                

                
            
        
浙公网安备 33010602011771号