zoukankan      html  css  js  c++  java
  • 函数名的使用/命名空间

    ### 函数名的使用
    
    ```
    # python中的函数可以像变量一样,动态创建,销毁,当参数传递,作为值返回,叫第一类对象.其他语言功能有限
    1.函数名是个特殊的变量,可以当做变量赋值
    2.函数名可以作为容器类型数据的元素
    3.函数名可以作为函数的参数
    4.函数名可作为函数的返回值
    
    __doc__或者help查看文档
    ```
    
    ### 命名空间
    
    ```
    # 作用域:作用范围
    # 命名空间 : 划分一块区域保存所有数据,以字典的方式存储(变量与值形成映射关系).一共三种.
    (1)内建命名空间:解释器启动时创建,直到解释器运行结束,生存周期最长
    (2)全局命名空间:文件运行时创建,直到解释器运行结束,生存周期较长
    (3)局部命名空间:函数调用时,里面的局部变量才创建,调用结束后即释放,生存周期较短
    #命名空间的提出是为了划分和控制变量是否可见,以及生存周期的长短.
    
    #命名空间 创建顺序:(了解)
    	python解释器启动->创建内建命名空间->创建全局命名空间->创建局部命名空间
    #命名空间 销毁顺序:(了解)
    	函数调用结束后->销毁函数对应的局部命名空间数据->销毁全局命名空间数据->销毁内建命名空间数据
    ```
    
    ### 全局变量 与 局部变量 及 其关键字的使用
    
    ```
    #局部变量:函数内部的变量是局部变量,作用域仅在函数内部可见(局部命名空间)
    #全局变量:函数外部的变量是全局变量,作用域横跨整个文件(全局命名空间)
    #内置函数:内建命名空间
    
    -- globals() :返回字典,存放着全局作用域所有内容
    -- locals()  :返回字典,当前作用域所有内容(locals调用之前的变量)
    -- global    :关键字:声明全局变量获修改全局变量
    -- nonlocal  :关键字:修改局部变量(当前函数上一层的局部变量)
    ```
    
    ### LEGB原则(即就近原则找变量)
    
    ```
    #找寻变量的调用顺序采用LEGB原则(即就近原则)
    B —— Builtin(Python);Python内置模块的命名空间      (内建作用域)
    G —— Global(module); 函数外部所在的命名空间        (全局作用域)
    E —— Enclosing function locals;外部嵌套函数的作用域(嵌套作用域)
    L —— Local(function);当前函数内的作用域            (局部作用域)
    依据就近原则,从下往上 从里向外 依次寻找
    ```
    
    ### 内部函数
    
    ```
    (1)内部函数可以直接在函数外部调用么
    (2)调用外部函数后,内部函数可以在函数外部调用吗
    (3)内部函数可以在函数内部调用吗
    (4)内部函数在函数内部调用时,是否有先后顺序
    ```
    
    ### 闭包
    
    ```
    # 获取闭包函数使用的变量  __closure__ , cell_content 
    
    闭包的定义:
    	内函数使用外函数的局部变量,并且外函数将内函数返回出来的方法叫闭包,
    	返回的内函数叫 闭包函数.
    
    闭包的特点:
        内函数使用了外函数的局部变量,外函数的局部变量与内函数发生绑定,延长该变量的生命周期
        (实际内存给它存储了这个值,暂时不释放)
    
    闭包的意义:
    	闭包可以优先使用外函数中的变量,并对闭包中的值起到了封装保护的作用.外部无法访问.
    ```
    

      

  • 相关阅读:
    断开ssh链接在后台继续运行命令
    linux 隐藏显示终端光标
    shell脚本中echo显示内容带颜色
    Linux/Unix下pid文件作用浅析
    使用autotools自动生成Makefile并在此之上使用dh-make生成可发布的deb程序包(详解)
    Linux的tmpfs文件系统
    kernel编译
    Qt之读取配置文件
    android之TCP客户端框架
    android之模拟器更新底层
  • 原文地址:https://www.cnblogs.com/huangjiangyong/p/10829151.html
Copyright © 2011-2022 走看看