5.13 Day11
一.locals 和 globals
1.locals 获取当前作用域中的所有内容
(1).locals 如果在函数外,调用locals(),获取的是打印之前的所有变量,返回字典,全局空间作用域
(2).locals 如果在函数内,调用locals(),获取的是调用之前所有变量,返回字典,局部空间作用域
2.globals 获取全局作用域的所有内容
(1).globals 如果在函数外,调用globals(),获取的是打印之前的所有变量,返回字典,全局空间作用域
(2).globals 如果在函数内,调用globals(),获取的是调用之前的所有变量,返回字典,全局空间作用域
二.函数的嵌套
1.函数的嵌套:嵌套在函数的外边叫做外函数 ; 嵌套在函数的里边叫做内函数
(1)内部函数可以直接在函数外部调用么 不可以
(2)调用外部函数后,内部函数可以在函数外部调用吗 不可以
(3)内部函数可以在函数内部调用吗 可以
(4)内部函数在函数内部调用时,是否有先后顺序 有(必须先定义再调用)
2.LEGB 原则 (即就近找变量的原则)
找寻变量的调用顺序采用LEGB原则(即就近原则)
B —— Builtin(Python);Python内置模块的命名空间 (内建作用域)
G —— Global(module); 函数外部所在的命名空间 (全局作用域)
E —— Enclosing function locals;外部嵌套函数的作用域(嵌套作用域)
L —— Local(function);当前函数内的作用域 (局部作用域)
依据就近原则,从下往上 从里向外 依次寻找
三.nonlocal 关键字 用来修改[局部变量]
1.nonlocal 遵循 LEGB
(1) nonlocal 专门用来修改当前作用域上一级的局部变量
(2) 如果上一级找不到,那么继续向上寻找
(3) 全都找不到,直接报错.
四.闭包函数
1.闭包函数:内函数使用了外函数的局部变量,外函数将内函数返回出来的过程,叫做闭包,里面的内函数叫做闭包函数
2.闭包的特点
内函数使用了外函数的局部变量,该局部变量与内函数发生绑定,延长该变量的生命周期
3.闭包的含义
闭包可以优先使用外函数的局部变量,局部变量在函数外部不能被直接使用,对局部变量实现了保护的作用,外部无法访问
五.匿名函数
1.什么是匿名函数
只有返回值的函数 , 特点: 简洁 , 高效 ,方便
2.语法结构:lambda 参数 : 返回值
3.三目(元)运算符
真值 if 条件表达式 else 假值
如果条件表达式成立,为真,返回真值
如果条件表达式不成立,为假,返回假值

浙公网安备 33010602011771号