函数是第一类对戏那个,即函数能够看成数据传递python
1.能够被引用闭包
2.能够看成参数传递函数
3.返回值能够是函数对象
def max(x,y): return x if x > y else y def max4(a,b,c,d): res1=max(a,b) res2=max(res1,c) res3=max(res2,d) return res3 print(max4(1,2,3,4))
1.名称空间:指的就是存放值与内存地址绑定关系的地方。内存
内置名称空间作用域
存放的是python解释器自带的名字引用
产生:python解释器启动时则产生程序
销毁:python解释器关闭时则销毁数据
全局名称空间:在顶级定义的名字参数传递
产生:执行python程序时产生
销毁:python程序执行完毕后销毁
局部名称空间:在函数内定义的名字
产生:在函数调用时临时产生
销毁:在函数调用完毕后销毁
三种名称空间产生前后顺序:内置》全局》局部
查找名字的顺序:从当前想外查找 局部》全局》内置
2.做用域:指的是做用范围
全局做用域:包含内置与全局名称空间的名字
特色:全局存活,全局有效
局部做用域:包含局部名称空间的名字
特色:临时存活,局部有效
!!!做用域关系时在函数定义阶段就已经固定死了,与调用位置无关。
内部函数包含对外部做用域而非全局做用域的引用
闭包函数的意义与应用
闭包的意义:返回的函数对象,不单单是一个函数对象,在该函数外还包裹了一层做用域,这使得,该函数不管在何处调用,优先使用本身外层包裹的做用域 #应用领域:延迟计算(原来咱们是传参,如今咱们是包起来)