page contents

闭包很难?那是你找错了方向!

很多同学觉得闭包很晦涩,不知道如何下手。上课能听懂,但做起来脑袋一片空白。那我们再来理一理这期中的千丝万缕。

构成条件:

1)函数中嵌套一个函数;2)内层嵌套函数,对外部作用域有一个非全局变量的引用;3)外层函数的返回值是内层函数的函数名

上模板:

 def outF(n):     # 外层函数
     sum=n        # 外层函数的局部变量
     def inF(n):  # 内层函数
         return  sum+1  #内嵌函数inF()引用了外层函数的变量sum
     return  inF

闭包的作用:

保存局部信息不被销毁(可理解为内外函数信息的绑定),保证数据的安全性。

举例:

 # 定义一个函数
 def outer(m):
     print('out函数中的值:', m)
     def inner(n):
         print('inn函数中的值:', n)
         return m + n
     return inner # 返回到函数的调用处,即inner返回给了outer(10),即ot = inner,要调用inner即为ot()
 
 # 给outer函数赋值,这个10就是给参数m
 ot = outer(10)      
 # 注意这里的20其实给参数n
 print(ot(20))     # 即输出print(inner(20))
 # 注意这里的30其实给参数n
 print(ot(30))
 
 # print(outer(10)(20))   # 这种写法也可以
 
 运行结果:
 out函数中的值: 10
 inn函数中的值: 20
 30

  • 发表于 2021-07-14 21:36
  • 阅读 ( 359 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Wilia
Wilia

28 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1324 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章