命名关键字参数:在定义函数时,*与**之间参数称之为命名关键字参数

特点:在调用函数时,命名关键字参数必须按照key=value的形式传值

 

函数对象

函数是第一类对象:指的是函数的内存地址可以像一个变量值一样去使用

1.变量值可以被引用

2.变量值可以当作参数传给另外一个函数

3.变量值可以当作函数的返回值

4.变量值可以当作容器类型的元素

 

函数嵌套

函数的嵌套调用:在一个函数内部又调用其它函数

函数的嵌套定义:在函数内又定义了其他函数

 

一 、名称空间相关

1.名称空间Namespaces:指的就是存放名字与值内存地址绑定关系的地方(内存空间)

2.名称空间分为三大类

  内置名称空间:存放的是python解释器自带的名字

    产生:python解释器的启动则产生

    销毁:python解释器关闭则销毁

 

全局名称空间:在顶级定义的名字

  产生:执行python程序时产生

  销毁:python程序执行完毕后则销毁

 

局部名称空间:在函数内定义的名字

  产生:在函数调用时临时产生

  销毁:在函数调用完毕后则销毁

 

三种名称空间的产生的先后顺序:内置——全局——局部

查找名字的顺序:从当前位置往外一层一层查找

  如果当前在局部名称空间:局部——全局——内置

  如果当前在全局名称空间:全局——内置

 

二、作用域:指的是作用范围

  全局作用域:包含内置与全局名称空间的名字

    特点:全局存活,全局有效

  局部作用域:包含局部名称空间的名字

    特点:临时存活,局部有效

作用域关系是在函数定义阶段就已经固定死了,与调用位置无关

 

闭包函数:

闭:封闭,指的是该函数是定义一个函数内部的函数

包:该内部函数包含对外层函数名字的引用

 

为函数体传值的两种方式:

  方式一:直接以参数的形式传入

  方式二:闭包函数