9.26

函数对象:

指的是函数的内存地址可以想一个变量值一样去使用

1.变量值可以被引用

2变量值可以当做参数传给另外一个函数

3.变量值可以当做函数的返回值

4.变量值可以是容器类型的元素

=======================================================

函数的嵌套:

指的是在一个函数里又调用其他函数

# def max2(x,y):
# if x > y:
# return x
# else:
# return y
#
# def max4(a,b,c,d):
# res1=max2(a,b)
# res2=max2(res1,c)
# res3=max2(res2,d)
# return res3
#
# print(max4(1,2,3,4))

============================================================

名称空间与作用域:

名称空间指的是存放名字与值内存地址绑定关系的地方

1.名称空间分为三大类

内置名称空间:存放的是python解释器自带的名字

          产生:在python解释器启动时产生

          销毁:在python解释器关闭时销毁

全局名称空间:在顶级定义的名字

          产生:执行python程序时

          销毁:在python程序执行完毕后销毁

局部名称空间:在函数内定义的名字

          产生:在函数调用时产生

          销毁:在函数调用结束时销毁

三种名称空间的产生先后顺序:内置=》全局=》局部

查找名字的顺序:从当前位置往外一层一层查找

如果当前在局部名称空间: 局部->全局->内置

如果当前在全局名称空间: 全局->内置

2.作用域:

指的是作用范围

全局作用域:

指的是包含内置与全局名称空间的名字

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

(在任何位置都能够访问的到,该范围内的名字会伴随程序整个生命周期)

局部作用域:

指的是局部名称空间的名字

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

(只能在函数内使用,调用函数时生效,调用结束失效)

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

===================================================================

必包函数:

闭:指的是该函数是定义已覆盖函数内部的函数

包:该内部函数包含对外层函数名字的引用

 

posted @ 2018-09-26 22:17  葛洪  阅读(101)  评论(0编辑  收藏  举报