函数基础
函数对象
函数对象四大功能
引用
f = func print(f)
当作参数传给一个函数
len(x) def foo(m): m() foo(func)
可以当作返回值
def foo(x): return x res = foo(func) print(res)
可以当作容器类型的元素
def func(): pass func_lis = [func] func_lis = [0]()
函数的嵌套
函数内部定义的函数,无法在函数外部使用内部定义的函数。
def f1():
def f2():
print('sad')
f2()
f2()
名称空间
内置名称空间:
启动python时产生的空间,里面存放print,while,is等
在启动时生效,在关闭时失效
全局名称空间:
创建文件时产生,定义的函数等,全局定义的函数全局可用,如x,func,l,z
在文件执行时生效,结束时失效
局部名称空间:
定义函数时产生,存在函数内部
文件调用函数期间生效,在函数执行结束后失效
查找顺序
局部名称空间-->全局名称空间-->内置名称空间(找不到报错)
加载顺序
内置名称空间-->全局名称空间-->局部名称空间
作用域
全局作用域:
全局作用域,包含内置名称空间和全局名称空间
局部作用域:
零时存储,只包含局部名称空间
ps:作用域在函数定义阶段就已经固定死了,与函数的调用无关.
关键字
global:修改全局作用域中的变量
nonlobal:修改局部作用域中的变量,