2019.9.20函数作用域

可变长参数

形参

*args 表示接收多余位置参数

**kwargs表示接收多余关键字参数

定义时*args要放在**kwargs之后

实参

*用来解压缩列表或者元组或者字符串

**用来解压缩字典

函数对象的四个用法

  1. 引用
  2. 作为容器类的元素
  3. 作为函数的实参
  4. 作为函数的返回值

函数嵌套

def

​ def

函数中嵌套函数,其中内层函数外部不可用

名称空间和作用域

出现在嵌套函数中

名称空间

内置名称间Build-in

Python自带的关键字存放位置,

生命周期:解释器启动时生成,解释器关闭时释放

全局名称空间Global

放在可直接调用的空间

生命周期:文件执行时生效,文件执行结束后释放

局部名称空间

函数调用时候才会有局部

生命周期:调用时产生,调用结束释放

查找顺序

局部 --> 全局 --> 内置 --> 报错

作用域

内置作用域Build-in

内部函数存放位置

全局作用域Gobal

整个文件都可调用区域

上层函数本地作用域Enclosing

内层函数外部,非全局变量部分

本地作用域Local

本地作用域,局部作用域,

E和L中的同名变量名无关系(引用类型除外)

LEGB原则

两个函数

golbal x 可将函数内的变量变成全局作用域中的变量

nonlocal x 可将local变量变成enclosing作用域中变量

原文地址:https://www.cnblogs.com/agsol/p/11559957.html