一.函数对象
函数是第一类对象:指的是函数名指向的值可以被当作数据去使用.
1.函数可以被引用
例如:
2.可以当作参数传递给另一个函数
例如:
3.可以当作一个函数的返回值
例如:
4.可以当作容器类型的元素
例如:
二.函数嵌套
函数嵌套分为两大类
1.函数的调用嵌套:在调用一个函数过程中,其内部代码又调用了其他函数
例如:
2.函数的嵌套定义:在一个函数内部又定义其他函数
三.名称空间与作用域
名称空间:
名称空间是用来存放名字与值内存地址绑定关系的内部地址,但凡查找值一定要通过名字,访问名字必须去查找名称空间
名称空间分为三大类:
内置名称空间:存放的是python解释器自带的名字,如:len,max,print...
全局名称空间:存放的是文件级别的名字(没有缩进级别的所有名字)
局部名称空间:在函数内定义的名字
名称空间的生命周期:
内置名称空间:在解释器启动时则生效,解释器关闭则失效
全局名称空间:在解释器解释执行python时则生效,文件执行完毕后则失效
局部名称空间:只在调用函数时临时产生该函数的局部名称空间,该函数调用完毕则失效
名称空间的加载顺序:
内置名称空间---->全局名称空间---->局部名称空间
查找名称空间的顺序:
基于当前所处位置往上查找
假设当前在局部名称空间,查找顺序:局部名称空间---->全局名称空间---->内置名称空间
作用域
域:指的是范围作用域指的是作用的范围,分为两种
全局作用域:包含的是内置名称空间与全局名称空间中的名字
特点:全局有效,全局存活
局部作用域:局部局部名称空间中的名字
特点:局部有效,临时存活