命名关键字参数:在定义函数时,*与**之间参数称之为命名关键字参数
特点:在调用函数时,命名关键字参数必须按照key=value的形式传值
函数对象
函数是第一类对象:指的是函数的内存地址可以像一个变量值一样去使用
1.变量值可以被引用
2.变量值可以当作参数传给另外一个函数
3.变量值可以当作函数的返回值
4.变量值可以当作容器类型的元素
函数嵌套
函数的嵌套调用:在一个函数内部又调用其它函数
函数的嵌套定义:在函数内又定义了其他函数
一 、名称空间相关
1.名称空间Namespaces:指的就是存放名字与值内存地址绑定关系的地方(内存空间)
2.名称空间分为三大类
内置名称空间:存放的是python解释器自带的名字
产生:python解释器的启动则产生
销毁:python解释器关闭则销毁
全局名称空间:在顶级定义的名字
产生:执行python程序时产生
销毁:python程序执行完毕后则销毁
局部名称空间:在函数内定义的名字
产生:在函数调用时临时产生
销毁:在函数调用完毕后则销毁
三种名称空间的产生的先后顺序:内置——全局——局部
查找名字的顺序:从当前位置往外一层一层查找
如果当前在局部名称空间:局部——全局——内置
如果当前在全局名称空间:全局——内置
二、作用域:指的是作用范围
全局作用域:包含内置与全局名称空间的名字
特点:全局存活,全局有效
局部作用域:包含局部名称空间的名字
特点:临时存活,局部有效
作用域关系是在函数定义阶段就已经固定死了,与调用位置无关
闭包函数:
闭:封闭,指的是该函数是定义一个函数内部的函数
包:该内部函数包含对外层函数名字的引用
为函数体传值的两种方式:
方式一:直接以参数的形式传入
方式二:闭包函数