python名称空间及作用域

名称空间

存放名字的地方,是对栈区的划分,有了名称空间,可以在栈区中存放相同的名字

  1. 内置名称空间
    存放python解释器内置的名称
    存活周期:python解释器启动-关闭
    >>> print
    <built-in function print>
    >>> input
    <built-in function input>
    
  2. 全局名称空间
    运行顶级代码所产生的名字,或者说不是函数内定义,也不是内置的,剩下的就是全局名称空间
    存活周期:代码开始执行产生,执行完毕后销毁
    
  3. 局部名称空间
    在调用函数时,运行函数体代码中产生的名字
    存活周期:函数调用时产生,函数调用完毕后销毁
    
  4. 名称空间的加载顺序:内置名称空间>全局名称空间>局部名称空间
  5. 名称空间的销毁顺序:局部名称空间>全局名称空间>内置名称空间
  6. 名称查找优先级:当前所在位置向上一层一层查找
  7. 名称空间的嵌套关系:只跟定义时的空间有关

作用域

  1. 全局作用域:内置名称空间、全局名称空间
  2. 局部作用域:局部名称空间
  3. gloabal与nonlocal
    gloabal x --->x是全局作用域中名称可以修改全局变量
    nonlocal x---->以当前位置为起点向外寻找,终止位置是最外层函数体
    

名称空间

posted @ 2022-11-01 16:58  转角90  阅读(14)  评论(0编辑  收藏  举报