python基础-操作函数4

    一、函数的嵌套调用:

      在调用一个函数的时候,其内部的代码又调用其它的函数

      

 

    二、函数的嵌套定义:

      在一个函数的内部又定义了另一个函数

      

    三、名称空间与作用域

     什么是名称空间:是内存开辟存放 变量名和值的地址绑定关系 的地方。key-value 形式。

       x=1;干了什么事情?

       1.向内存申请一块空间,将值1放进去。

       2.将值1的内存地址与x变量名建立绑定关系

       3.这个绑定关系和x变量名会存放在名称空间

     

     要取得值必须通过名字才能找,而名字又在名称空间中存放,所以在取值时首先是去名称空间中找到名字,自然就拿到值的内存地址

    四、名称空间分三种:

   1.内置名称空间:存放python解释器自带的名字

      生命周期:在解释器启动时产生,在解释器关闭时回收

      作用范围:

      

 

      2.全局名称空间:存放

      生命周期:在运行py文件生效,py文件运行结束被回收

      作用范围:

      3.局部名称空间:存放的是函数内部定义的名称

      生命周期:在调用函数时临时生效,函数结束后,立即被回收

      作业范围:

      加载顺序:内置名称空间-》全局名称空间-》局部名称空间

      查找顺序:当前位置名称空间-》上级名称空间-》内置名称空间

      

 

   五、作用域

   域指的是范围,作用域指的是作用范围

     分为:

      全局作用范围:包含内置名称空间与全局名称空间。

        特点:全局有效,全局存活。

      局部作用范围:包含局部名称空间的名字

        特点:局部有效,临时存活

      

      globals:返回的是全局作用域中的名字
      

       

       

      dir(globals()['__builtins__']):返回的是全局作用域内置的名字
      

         

      

      locals:返回的是局部作用域的名字
      注意:被调用才会产生名称空间

       

 

      函数的作用域关系是在函数定义阶段决定的,与函数的调用位置无关

      即在调用函数时,一定要在定义函数的位置寻找作用域关系

      

       情况2:

       

       情况3:

      

      情况4:

      

 

     六、global关键字,nonlocal关键字

      global关键字的作用:在局部声明变量是来自于全局的

      

      nonlocal关键字的作用:在局部声明变量是来自于函数局部的(不能出函数

     

      

 

     注意:(不能出函数
     

      

 


      

 



  

posted @ 2019-03-16 00:10  不吃海带丝  阅读(153)  评论(0编辑  收藏  举报