目录
一 函数对象
1 函数对象的四大功能
1.引用
def func(): print('from func')print(func)f = funcprint(f)
2.当作参数传给一个函数
def foo(m): m()foo(func)
3.可以当作函数的返回值
def foo(x): return xres = foo(func)print(res)res()
4.可以当作容器类型的元素
def func(): print('from func')l = [x]function_list = [func]function_list[0]()
二 函数嵌套
1 函数的嵌套定义:
函数内部定义的函数,无法在函数外部使用内部定义的函数
2 函数的嵌套调用
一个函数里又调用另一个函数,这就是函数嵌套调用
三 名称空间与作用域
1 名称空间
Python所有有关命名的操作都是在操作名称空间,例如变量名,函数名
(1):内置名称空间:Python解释器提供好的功能,解释器启动跟着一起启动,是全局作用域
(2):全局名称空间:Python中顶行写的,不在函数内部定义的,都是全局名称空间,在运行的时候会产生名称空间,是全局作用域
(3):局部名称空间:在一个小范围定义,只能当前范围及其子空间内运行,例如在函数内部定义的,是局部作用域
加载顺序:内置--》全局--》局部
查找顺序:从当前所在位置开始查找,如果当前所在的位置为局部名称空间,则查找顺序为局部--》全局--》--内置
(4):nonlocal关键字:修改局部作用域中的变量
(5):global关键字:修改局部作用域中的变量