关键字参数、函数对象、嵌套、命名空间、作用域

函数2

命名关键字参数

函数定义阶段,写在*和**之间的形参

注意

  • a.只能用关键字为其传值

  • b.m和z=3位置可以互换,不报错

  • 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.局部名称空间:函数被调用的时候自动创建 函数指向结束立即销毁(动态创建动态销毁)

 

posted @ 2019-07-10 18:36  不在一城  阅读(148)  评论(0编辑  收藏  举报