Python函数进阶


命名空间
全局命名空间
代码在运行伊始,创建的存储“变量名与值的关系”的空间
局部命名空间
在函数的运行中开辟的临时的空间
内置命名空间
python解释器为我们提供的空间
作用域
定义:作用范围
全局作用域
内置名称空间
全局名称空间
局部作用域
局部名称空间,只能在局部范围内生效
globals() 和 locals()
global
1.声明一个全局变量
2.在局部作用域对全局变量修改,用global声明
ps:对可变数据类型(list,dict,set)可以直接引用不用通过global
nonlocal
1,不能修改全局变量。
2,在局部作用域中,对父级作用域(或者更外层作用域非全局作用域)的变量进行引用和修改,并且引用的哪层,从那层及以下此变量全部发生改变。
函数的嵌套
函数中定义函数
函数的作用链
小范围作用域可以使用大范围的变量,但是反之不行,他是单向的
函数的本质
1.可以被引用
2.可以被当作容器类型的元素
3.可以当作函数的参数和返回值
一句话概括:当普通变量使用
闭包
加载与取值顺序
加载顺序
内置命名空间(程序运行前加载)>全局命名空间(程序运行中:从上到下加载)>局部命名空间(程序运行中:调用时才加载)
取值顺序
局部调用
局部命名空间>全局命名空间>内置命名空间
全局调用
全局命名空间>内置命名空间

posted @ 2018-02-01 17:00  Charls_w  阅读(68)  评论(0编辑  收藏  举报