闭包

什么是闭包(3个条件)

  • 函数A内部存在一个函数B
  • 函数B中使用了A的参数
  • 函数A的返回值是B函数名

注意点

每次调用A(args...) 会生成一个新的闭包(下面的area互不受影响)

def rect_conf(a, b):
    def area():
        return a * b
    return area

rect1 = rect_conf(5,6)
area1 = rect1()
print('area1 =',area1)  # area1 = 30

rect2 = rect_conf(7,8) 
area2 = rect2()
print('area2 =',area2) # area2 = 56
print('area1 =',area1) # area1 = 30
print('area =',rect_conf(10,10)())  # area = 100
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本章将会介绍 闭包表达式尾随闭包值捕获闭包是引用类型逃逸闭包自动闭包枚举语法使用Switch语句匹配枚举值关联值原...
    寒桥阅读 1,590评论 0 3
  • 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 C 和 Objective-C 中的代...
    莽原奔马668阅读 1,909评论 2 12
  • 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 C 和 Objective-C 中的代...
    穷人家的孩纸阅读 1,760评论 1 5
  • 我从什么时候开始思考我这漫长的一生该如何度过的呢?应该是经历完人生第三个低谷之后吧。 13年前,我经历了人生第一个...
    一夕Joy阅读 1,036评论 0 1
  • 想你了 想给你发短信 却不知该发些什么 想给你打电话 却不知如何开口 一切都是偷偷的 偷偷的想你 想你 想你 还是...
    怪味豆加柠檬水阅读 380评论 0 0