关键字参数、函数对象、嵌套、命名空间、作用域
命名关键字参数
函数定义阶段,写在*和**之间的形参
注意
-
a.只能用关键字为其传值
-
-
c,z和m都是关键字参数,不是默认值参数和位置参数
函数对象
1.函数可以被传递(可以理解为链式赋值)
2.函数可以被当做参数传递给其他函数
-
在一个函数的代码块内执行一个函数1, 函数1是可以被执行的
3.函数名可以被当做函数的返回值
-
返回值被变量a就收之后, a()的方式仍然可以执行函数体内的代码块
4.函数名可以被当做容器类型的参数
-
只要有函数名+()的形式, 其他的都暂停执行,先执行函数
函数嵌套
意思就是在函数内调用其他函数
作用是:可以将复杂的逻辑简单化
嵌套调用
-
就是说定义两个函数, 在一个函数内部,直接调用另一个函数
嵌套定义
-
就是说在一个函数内部定义函数
作用域
global:局部修改全局 如果想修改多个 逗号隔开
nonlocal:局部修局部 如果想修改多个 逗号隔开
命名空间
含义
-
详细解释:存放的是变量名与变量值的内存地址得绑定关系的地方
要想访问一个变量的值 必须先去名称空间中拿到对应的名字 才能够访问变量的值
分开解释
-
内置名称空间:python解释器提前给你定义好的名字(已经存放到内置名称空间中了)。 打开Python解释器时创建的
-
全局名称空间:文件级别的代码 例如:if for while 无论嵌套多少层 它们内部所创建的名字都是全局名称空间的
-
局部名称空间: 例如 函数体内创建的名字都属于局部名称空间
取值顺序
-
在局部调用:局部命名空间->全局命名空间->内置命名空间
-
在全局调用:全局命名空间->内置命名空间
生命周期
-
1.内置名称空间:只要python解释器已启动立马创建 关闭python解释器的时候内置名称空间自动销毁 2.全局名称空间:只要你右键运行py文件会自动创建 py文件程序运行结束自动销毁 3.局部名称空间:函数被调用的时候自动创建 函数指向结束立即销毁(动态创建动态销毁)