函数对象 函数嵌套 名称空间与作用域 闭包函数

一函数对象

 函数是第一类对戏那个,即函数可以当作数据传递

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.作用域:指的是作用范围

全局作用域:包含内置与全局名称空间的名字

                特点:全局存活,全局有效

局部作用域:包含局部名称空间的名字

                特点:临时存活,局部有效

!!!作用域关系时在函数定义阶段就已经固定死了,与调用位置无关。

四闭包函数

内部函数包含对外部作用域而非全局作用域的引用

闭包函数的意义与应用

闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域 #应用领域:延迟计算(原来我们是传参,现在我们是包起来)

 

posted on 2018-09-26 20:38  hua_zhong  阅读(88)  评论(0编辑  收藏  举报

导航