zoukankan      html  css  js  c++  java
  • 第11天

    全局变量 与 局部变量 及 其关键字的使用

    #局部变量:函数内部的变量是局部变量,作用域仅在函数内部可见(局部命名空间)
    #全局变量:函数外部的变量是全局变量,作用域横跨整个文件(全局命名空间)
    #内置函数:内建命名空间

    -- globals() :返回字典,存放着全局作用域所有内容

    #### locals 和 golbals  
    locals 获取当前作用域的所有内容
    如果在函数外 调用locals()获取的是打印之前的所有变量,返回字典
    # '''
    # a = 1
    # b =2
    # res = locals()
    # print(res)

    # '''

    在函数内部 调用locals()获取的是调用处之前的所有局部变量



    globals 获取全局作用域的所有内容
    如果在函数外 调用globals()获取的是打印之前的所有变量,返回字典


    在函数内部 调用globals()获取的是调用处之前的全局变量


    -- locals()  :返回字典,当前作用域所有内容(locals调用之前的变量)
    -- global    :关键字:声明全局变量获修改全局变量
    -- nonlocal  :关键字:修改局部变量(当前函数上一层的局部变量)

    修改全局变量 global

    修改局部变量 nonlocal

    专门修改当前作用域上一级的局部变量

    遵循LEGB原则

    LEGB原则(即就近原则找变量)

    #找寻变量的调用顺序采用LEGB原则(即就近原则)
    B —— Builtin(Python);Python内置模块的命名空间      (内建作用域)
    G —— Global(module); 函数外部所在的命名空间        (全局作用域)
    E —— Enclosing function locals;外部嵌套函数的作用域(嵌套作用域)
    L —— Local(function);当前函数内的作用域            (局部作用域)
    依据就近原则,从下往上 从里向外 依次寻找

    函数嵌套:

        内函数

        外函数

    (1)内部函数可以直接在函数外部调用么

      不可以
    (2)调用外部函数后,内部函数可以在函数外部调用吗

      不可以  
    (3)内部函数可以在函数内部调用吗

    可以
    (4)内部函数在函数内部调用时,是否有先后顺序

    有的

    # ###闭包函数
    '''    
    内函数使用了外函数的局部变量
    外函数将内函数返回出来的过程,叫做闭包
    里面的内函数叫做闭包函数
    '''

    闭包

    # 获取闭包函数使用的变量  __closure__ , cell_contents(了解)

    闭包的定义:
        内函数使用外函数的局部变量,并且外函数将内函数返回出来的方法叫闭包,
        返回的内函数叫 闭包函数.

    闭包的特点:
        内函数使用了外函数的局部变量,外函数的局部变量与内函数发生绑定,延长该变量的生命周期
        (实际内存给它存储了这个值,暂时不释放)

    闭包的意义:
        闭包可以优先使用外函数中的变量,并对闭包中的值起到了封装保护的作用.外部无法访问.

    匿名函数

    '''
    用一句话来表达只有返回值的函数,
    特点 简洁 高效
    语法结构:
     lambda 参数 : 返回值
    '''

    ##三目运算符

    '''
    真值 if 条件表达式 else 假值
    表达双向分支
    '''

    func = lambda x,y :x if x>y else y

  • 相关阅读:
    05 单例模式
    04 volatile关键字实现原理
    03 synchronized
    02 java内存模型
    spark性能调优06-数据倾斜处理
    redis缓存架构-03-redis下的replication以及master+slave
    SpringBoot webSocket搭建示例
    Httpclient-(get、post(application/json)、post(application/form-data)、download、upload)
    CentOS-Java 依赖安装
    Git使用教程
  • 原文地址:https://www.cnblogs.com/-jov/p/12881829.html
Copyright © 2011-2022 走看看