zoukankan      html  css  js  c++  java
  • 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关键字的作用:在局部声明变量是来自于函数局部的(不能出函数

         

          

         注意:(不能出函数
         

          


          
    
    
    
    

      

  • 相关阅读:
    第一周任务Largest Submatrix of All 1’s
    第一周 Largest Rectangle in a Histogram
    第二次作业
    B. Light bulbs(2019 ICPC上海站)
    二维平面最近点-分治
    python生成器,推导式
    python函数名的运用,闭包,迭代器
    python函数(二)
    python函数(一)
    python基础(七)
  • 原文地址:https://www.cnblogs.com/linbin7/p/10540301.html
Copyright © 2011-2022 走看看