• Day11名称空间,作用域,闭包函数


    Day11

    1.函数对象: ①可以被引用
    ​ ②可以作为另一个函数的参数
    ​ ③可以作为另一个函数的返回值0
    ​ ④可以被存储到容器类型中

    2.函数嵌套:
    ①嵌套调用:在一个函数中调用了另一个函数
    ​ ②嵌套定义:在一个函数内定义了另一个函数

    ​ 特点:定义在函数内的函数只能在函数内使用,外界不能直接访问

    3.名称空间:存储名字与内存地址对应关系的空间

    ​存储名称的空间,名称空间中,名字与内存地址一一对应

    内置名称空间:解释器自带的名称与值的对应关系
    python解释器启动的时创建,关闭python解释器销毁

    全局名称空间:文件级别的名称,除了内置的和函数内的都在全局名称空间
    执行py文件时创建,执行完毕时销毁

    局部名称空间:只要是函数内的名称就在局部名称空间
    调用函数时创建,函数执行完毕就销毁

    加载顺序,1.内置,2,全局3.局部
    查找顺序,1.局部 2,全局 3,内置

    4.作用域:
    域指的是区域,范围的意思
    全局的名称空间和内置的名称空间,在使用上没什么区别
    局部和全局的,内置的,就有区别了,局部定义的只能在局部使用

    给三个空间划分范围
    全局和内置的可以划分到一个范围内
    global全局范围,就是所谓的全局作用域

    局部的单独划分为一个范围
    local 局部作用域

    globals() 查看全局作用域中的内容
    dir(globals()["_builtins_"])

    locals() 查看作用域中的内容

    global明确声明,要使用全局中的age

    nonlocal使用闭包函数外部函数变量 nonlocal
    明确声明使用上一层中的a,如果上一层没有a,则找找上上层,不能找全局

    5.闭包函数:
    1.定义在另一个函数内
    2.在内部函数中使用外部的名称

    函数的作用域在定义时就已经固定好,与调用位置没有关系
    在返回这个内容的函数时,不是单纯的返回函数,还把函数中访问到的局部名称一起打包了
    相当于将内部函数与访问的数据打包在一起了(数据不包含全局变量)

  • 相关阅读:
    ixgbe dma 控制器
    per cpu
    HDU 4597 Play Game
    HDU 5115 Dire Wolf
    hdu 5900 QSC and Master
    CodeForces933A A Twisty Movement
    CodeForces 245H Queries for Number of Palindromes
    CodeForces596D Wilbur and Trees
    CodeForces509F Progress Monitoring
    CodeForces149D Coloring Brackets
  • 原文地址:https://www.cnblogs.com/robert-zhou/p/10035705.html
Copyright © 2020-2023  润新知