4.2 函数进阶 之 中高级(闭包/高阶函数)

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源码】

 

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注