1.函数可以做返回值
def bar(): def inner(): print(123) return inner v = bar() v()
面试题
info = [] def func(): print(item) for item in range(10): info.append(func) info[0]()
info = [] def func(i): def inner(): print(i) return inner for item in range(10): info.append(func(item)) info[0]() info[1]() info[4]()
2.闭包
def func(name): def inner(): print(name) return inner v1 = func('alex') v1() v2 = func('eric') v2()
3.高阶函数
- 把函数当作参数
- 把函数当作返回值
总结
- 函数执行的流程分析(函数由谁创建)
- 闭包概念
为函数创建一块区域并为其维护自己的数据,以后执行时方便调用
【应用场景:装饰器/SQLAlchemy源码】