函数进阶
一、函数参数--动态传参 动态参数必须在位置参数的后面 1、动态接收位置参数*args 接受的数据类型为元组( , ) 2、动态接受关键字参数**kwargs 动态传参顺序 位置参数 > 动态参数* > 默认值参数>**关键字动态传参 *,** 形参: 聚合(接受元组合) 实参:打散 二、命名空间 1、定义 我们给存放名字和值的关系的空间起名为命名空间 2、分类 1、内置命名空间:存在python解释器中,自带的装在内置函数名的空间 2、全局命名空间:我们直接在py文件中,创建的变量名和函数名都属于全局命名空间 3、局部名空间:在函数内部申明的变量或者函数内部的函数名都属于局部命名空间 3、加载顺序 1、加载顺序:内置命名空间->全局命名空间->局部名空间 2、取值顺序:局部命名空间->全局命名空间-> 内置命名空间 4、作用域 1、全局作用域:全局命名空间+内置命名空间 globals( )查看全局作用域中的内容 2、局部作用域:局部命名空间 locals( )查看打的作用域中的内容,既可以查看全局,也可以查看局部作用域 三、函数的嵌套 定义:就是函数内部中定义了其他的函数 四、关键字global和nonlocal global 变量名 1、如果全局变量中存在该变量,则将该变量引入局部,可以进行赋值操作 2、如果不存在,则在局部变量中直接创建该变量,并升华为全局变量 nonlocal 变量名(仅在局部中讯在变量) 在局部命名空间中,先往上一层寻找变量,找到就引入,没找到就继续往上上层寻找...最后没找到就报错