函数的名称空间,作用域

名称空间(命名空间)

  • 全局名称空间,存放的是当前这个py文件变量的一些对应关系(a:2,func:函数地址)
  • 临时命名空间是函数被调用时临时存放函数内部的变量的对应关系,当函数结束时临时命名空间也会消失。

  • 内置名称空间
    • python源码给你提供的一些内置函数(print,input)

python分为三个空间

  • 内置名称空间(builtins.py)

  • 全局名称空间(当前py文件)

  • 局部名称空间(函数,函数执行时才开辟)

  • 加载顺序:

    • 内置名称空间---》全局名称空间----》局部名称空间(函数执行时)
  • 函数取值顺序(就近原则):

    • 先从局部开始寻找变量,再从全部去找,再去内置去找

作用域

  • 全局作用域:(全局作用域不可以引用局部作用域的变量)

    • 内置名称空间,全局命名空间
  • 局部作用域:(局部作用域可以引用全局作用域的变量)注:只可以引用

    • 局部命名空间
  • 局部作用域不可以改变全局作用域的变量原因:

    1.python解释器的加载顺序是内置名称空间---》全局名称空间----》局部名称空间(函数执行时)

    2.当python解释器读取到局部作用域时,发现你对一个变量进行修改的操作,解释器会认为你在局部已经定义过这个局部变量了,解释器就会从局部命名空间去寻找,但是局部并没有,所以报错。

posted @ 2021-06-03 13:27  刘家小仙女  阅读(54)  评论(0编辑  收藏  举报